C++ 如何获取向量的结尾并将其指定给字符串

C++ 如何获取向量的结尾并将其指定给字符串,c++,string,vector,C++,String,Vector,我想得到向量的最后一个元素,然后把它赋给一个字符串,但我似乎有问题 假设这个向量已经被填充了,但我不知道填充了多少,所以我试着这样做 std::vector<std::string> vec; std::string s = vec.end(); std::向量向量向量机; std::string s=vec.end(); 循环可以工作,然后只获取最后一个索引吗 这不起作用,所以有办法得到向量的结尾吗 编辑------ out.push_back(r.validateR(str)

我想得到向量的最后一个元素,然后把它赋给一个字符串,但我似乎有问题

假设这个向量已经被填充了,但我不知道填充了多少,所以我试着这样做

std::vector<std::string> vec;
std::string s = vec.end();
std::向量向量向量机;
std::string s=vec.end();
循环可以工作,然后只获取最后一个索引吗

这不起作用,所以有办法得到向量的结尾吗

编辑------

out.push_back(r.validateR(str));
AppendCustomizeOutput=out.back();
DCS_LOG_DEBUG(“END”
vector::END()
返回一个迭代器,该迭代器超出了向量中最后一个实元素的范围(它主要用于迭代时的检查)

最好的办法是:

std::string s = vec.back(); // last item
正如@JamesKanze和@PeterWood所说的,不要忘记检查空向量-否则这是未定义的行为…

container.end()
(或任何类型的容器)将在容器末尾返回一个迭代器。要获取容器中的最后一项,您需要使用
container.back()

std::string s = vec.back();
这就是
vec.back()
的作用。只需首先确保向量不是空的。

end()
返回一个迭代器,该迭代器引用向量容器中结束元素的过去部分。
您需要
back()
:它返回对向量容器中最后一个元素的引用。

使用
vec.back()
获取对最后一个元素的引用。使用
vec.pop_back()
删除最后一个元素(不返回它)。

如果(!vec.empty()),最好检查它是否为空
,否则会出现未定义的行为。@彼得伍德我已经编辑了问题,如果你能看一下,请看我们不能真正帮助你,我们不知道你要拆分的字符串中有什么-它与向量(或它的行为)无关-无论如何-此更新似乎是一个新问题。。。
std::string s = vec.back();