将一组字符串转换为简单的字符串c ++

时间:2015-12-03 21:31:27

标签: c++ string set

我有一组字符串set<string> aSet。如何将集合转换为字符串a将所有元素用逗号分隔?谢谢!

3 个答案:

答案 0 :(得分:5)

这是一个选项:

std::ostringstream stream;
std::copy(aSet.begin(), aSet.end(), std::ostream_iterator<std::string>(stream, ","));
std::string result = stream.str();

答案 1 :(得分:1)

accumulate example具有将int的向量连接到字符串的代码,可以根据您的目的轻松转换:

std::string s = std::accumulate( std::begin(aSet), 
                                 std::end(aSet), 
                                 std::string{},
                                 [](const std::string& a, const std::string &b ) {
                                    return a.empty() ? b
                                           : a + ',' + b; } );

答案 2 :(得分:0)

这里有简单易懂的方式,没有任何花哨的东西:

string s;

for (auto const& e : aSet)
{
    s += e;
    s += ',';
}

s.pop_back();