C++ |获取列表中的最后一个值

C++ | Get the last value in list

本文关键字:最后一个 列表 获取 C++      更新时间:2023-10-16

我有项目列表(项目类)我想获取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;