我是C ++的新手。我无法弄清楚如何将std::string
添加到std::string
的末尾而不将其设为std::vector
..
现在我有:
string returnvar;
for (int i=start; i<=end; i++) {
returnvar.push_back(library[data[i]]);
}
但push_back()
适用于std::vector<std::string>
而不是std::string
。我将如何在std::string
上继续推进到最后:
a
ab
abc
abcd
等循环的每次迭代
答案 0 :(得分:7)
std::string
有一个push_back()
方法,就像std::vector
一样(§21.4.6.2/ 21):
void push_back(charT c);
Effects: Equivalent to append(static_cast<size_type>(1), c).
您可以改为使用operator+=
:
returnvar += library[data[i]];
或其中一个append()
重载:
returnvar.append(&library[data[i]], 1);
returnvar.append(1, library[data[i]]);
答案 1 :(得分:1)
std::string returnvar;
for (std::size_t i = start; i <= end; ++i)
{
returnvar += library[data[i]];
}
答案 2 :(得分:-3)
您可以使用+ =运算符:
string returnvar;
for (int i=start; i<=end; i++) {
returnvar += library[data[i]];
}
或append
函数(编辑以反映Jerry Coffin的更正):
string returnvar;
for (int i=start; i<=end; i++) {
returnvar.append(1, library[data[i]]);
}
更多信息:
http://www.cplusplus.com/reference/string/string/operator+=/