c++ - 使用 copy() 连接字符串

标签 c++ string-concatenation

我是 C++ 的新手,我想知道有没有办法连接来自 vector< string> 的字符串使用 copy() 变成一个字符串.我知道我可以使用 accumulate() ,但我想知道这段代码“在幕后”有什么问题:

string concat_v (const vector<string>& v) {
  string s;
  copy(v.begin(), v.end(), back_inserter(s));
  return s;
}

或者用:

s.insert(s.end(), v.begin(), v.end());

最佳答案

您的代码示例的问题在于您无法将 string 复制到需要 char 的内容。这是同样的问题:

string s = "Hello";
char ch = s;         // ???

std::accumulate 函数完全符合您的要求,我不确定为什么您仍然想知道是否有办法 :) 使用它的方式是:

string s;
s = std::accumulate(v.begin(), v.end(), s);

它调用operator+ 来进行累加。还有一个 accumulate 版本,它调用您提供的自定义函数。

关于c++ - 使用 copy() 连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27260734/

相关文章:

C++在无符号整数和有符号整数之间转换

python - 我做错了什么? (Python帮助)

javascript - 连接来自 JavaScript XMLHttpRequest 的多个响应

c++ - 你怎么知道当前对象是什么?

C++ - 如何从同一类的静态函数访问类的私有(private)成员?

c++ - "Occasional"段错误

c++ - 如何连接两个字符串以用作初始化列表中的参数?

sql - 在oracle中连接值

c++ - C++ 字符串附加和运算符 += 之间的区别

c++ - 错误处理和多态性