<分区>
给定一个字符串 vector ["one", "two", "three"]。
问题>如何将其转换为“一二三”?
我知道用循环手动完成它的方法,想知道是否 有一种使用 STL 函数的更简单的方法。
//根据我应该使用 accumulate
的建议更新
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
struct BindTwoStrings
{
string operator()(const string& s1, const string& s2) const {
return s1.empty() ? s2 : s1 + " " + s2;
}
};
int main()
{
vector<string> vecString {"one", "two", "three"};
string ret2;
ret2 = accumulate(vecString.begin(), vecString.end(), ret2,
[] (const string& s1, const string& s2) -> string {
return s1.empty() ? s2 : s1 + " " + s2; });
cout << "ret2:\"" << ret2 << "\"" << endl;
string ret;
ret = accumulate(vecString.begin(), vecString.end(), ret, BindTwoStrings());
cout << "ret:\"" << ret << "\"" << endl;
return 0;
}