如何获取向量的结尾并将其分配给字符串

Cod*_*sSC 0 c++ string vector

我想获取向量的最后一个元素,然后将其分配给字符串,但我似乎有问题.

想象一下,这个载体已经被填满,但我不知道有多少,所以我试图这样做.

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]时没有打印出来,我不知道为什么?

Nim*_*Nim 9

vector::end() 返回一个迭代器,它是一个超出向量中最后一个真实元素的迭代器(它主要用于迭代时的检查).

最好的方法是:

std::string s = vec.back(); // last item
Run Code Online (Sandbox Code Playgroud)

正如@JamesKanze和@PeterWood所说,不要忘记检查空向量 - 否则它是未定义的行为......


Jam*_*nze 6

vec.back()是为了什么.只需确保向量先不为空.