我想获取向量的最后一个元素,然后将其分配给字符串,但我似乎有问题.
想象一下,这个载体已经被填满,但我不知道有多少,所以我试图这样做.
std::vector<std::string> vec;
std::string s = vec.end();
Run Code Online (Sandbox Code Playgroud)
循环是否有效,然后才能得到最后一个索引?
这没用,所以有没有办法让矢量结束?
编辑 - - -
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]);
Run Code Online (Sandbox Code Playgroud)
当我尝试打印测试[0]时没有打印出来,我不知道为什么?
vector::end() 返回一个迭代器,它是一个超出向量中最后一个真实元素的迭代器(它主要用于迭代时的检查).
最好的方法是:
std::string s = vec.back(); // last item
Run Code Online (Sandbox Code Playgroud)
正如@JamesKanze和@PeterWood所说,不要忘记检查空向量 - 否则它是未定义的行为......