我有一个 vector <string> v{"First sentence.", "Second sentence.", "Third sentence."};
我想在插入行尾定界符时连接起来。
我不明白这三种迭代方式的区别:
string build()
{
string ret;
for (string s: v) {
ret += (s + "\n");
}
return ret;
}
string build()
{
string ret;
for (const string s: v) {
ret += (s + "\n");
}
return ret;
}
string build()
{
string ret;
for (const auto &s: v) {
ret += (s + "\n");
}
return ret;
}
我应该使用或不使用什么,取决于什么?
最佳答案
auto x
当您想要处理拷贝时。auto &x
当您想使用原始项目并且可能要修改它们时。auto const &x
当您想使用原始项目并且不会修改它们时。
关于C++ vector 迭代 : const vs. const auto 与 no const,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49231305/