我想获取 vector 的最后一个元素,然后将其分配给一个字符串,但我似乎遇到了问题。
假设这个 vector 已经被填充了,但我不知道填充了多少,所以我尝试这样做。
std::vector<std::string> vec;
std::string s = vec.end();
循环会工作然后只获取最后一个索引吗?
这没有用,所以有没有办法得到 vector 的结尾?
编辑------
out.push_back(r.validateR(str));
appendCustomizedOutput = out.back();
DCS_LOG_DEBUG("END " << appendCustomizedOutput);
split(test,appendCustomizedOutput,boost::is_any_of("\n"));
DCS_LOG_DEBUG("END " << test[0]);
当我尝试打印 test[0] 时,什么也没有打印出来,我不知道为什么?
最佳答案
vector::end()
返回一个超出 vector 中最后一个实际元素的迭代器(它主要用于在迭代时进行检查)。
最好的方法是:
std::string s = vec.back(); // last item
正如@JamesKanze 和@PeterWood 所说,不要忘记检查空 vector - 否则它是未定义的行为......
关于c++ - 如何获取 vector 的末尾并将其分配给字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9585275/