c++ - 如何获取 vector 的末尾并将其分配给字符串

标签 c++ string vector

我想获取 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/

相关文章:

c++ - 初始化结构数组的问题

c++ - 在openmesh中计算三角形的面积

c# - 找到一组单词并用一个单词替换它们

Java 正则表达式沿着单词、标点符号和空格进行分割,并将所有内容保存在一个数组中

c++ - vector -首先出现k值

python - 找到矢量场的幅度(长度)平方的最快方法

c++ - const 和非常量方法之间的区别?

c++ - 根据模式用数字填充 C++ 数组

c++ - 函数返回数组地址而不是它的值

c++ - 尝试以特定长度将字符串从一个复制到另一个时出现段错误?