給定字符串[「one」,「two」,「three」]的向量。如何使用C++中的STL將字符串與空格連接成一個字符串
問題>如何將其轉換爲「一二三」?
我知道手動方式來做一個循環,並想知道 是否有一個更簡單的方法與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;
}
或'std :: stringstream'與'std :: ostream_iterator'和'std :: copy'。 – n0rd
[連接字符串](http://stackoverflow.com/questions/720344/concatenating-strings) –