[英]push_back for strings without converting to vector
我是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
如此循环的每次迭代
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]]);
std::string returnvar;
for (std::size_t i = start; i <= end; ++i)
{
returnvar += library[data[i]];
}
您可以使用+ =运算符:
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+=/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.