C++ |获取列表中的最后一个值
C++ | Get the last value in list
我有项目列表(项目类)我想获取list的最后一个值,当我运行程序时,它向我显示愚蠢的错误(错误在运行时并且没有编译器错误)
这是代码:
int id = 1;
if(items.size() > 0)
id = items.end()->getID() + 1;
items 是列表变量,getID() 是 Item 类的函数,它的 ' 返回 int
错误是"列表迭代器不可取消引用"
谢谢大家的帮助;)
items.end()
和其他容器末端迭代器(例如 items.rend()
) 指向列表末尾后面的一个。 试试items.back()->getID() + 1;
.
std::list::end 向容器最后一个元素后面的元素返回一个迭代器, 此元素充当占位符; 尝试访问它会导致未定义的行为。
您可以使用 std::list::back 或反向迭代器 std::list::rbegin
尝试:
items.back()->getID() +1;
(*items.rbegin())->getID() +1;
相关文章:
- 测试迭代器是否位于列表中的最后一个
- 删除链接列表中剩余的最后一个节点
- 避免在使用链接列表从 deque 中删除最后一个节点时出现内存泄漏
- 遍历列表包含排除最后一个元素的内容
- 循环中列表的最后一个元素
- 计算列表中与线性链接列表中最后一个节点具有相同数据的节点的数量
- 在删除双重链接列表中的最后一个元素时,请阅读访问违规行为
- 如何区分浮点列表中的最后一个浮点值
- 获取列表的第一个和最后一个元素<string>给我非法指令错误
- 如何在没有最后一个元素的情况下迭代列表
- 迭代时删除列表中的最后一个元素会导致错误
- 删除链接列表中的最后一个节点
- 自定义列表实现迭代器无法访问最后一个元素 (c++)
- 删除链接列表的最后一个节点
- 是否可以删除链接列表中的最后一个节点
- 将连字符作为元素包含在scanf()的扫描集中,如果它是列表中的第一个字符或最后一个字符
- 查找升序列表中降序的第一个和最后一个数字
- 删除列表错误中的最后一个节点
- c++中指针列表的最后一个元素
- 使用这个正则表达式,为什么它只捕获最后一个列表项?