【发布时间】:2016-09-08 02:09:24
【问题描述】:
我有以下课程。它有一个静态成员_list,由该类的所有实例共享,该成员将在Class_f() 中创建。我想使用擦除功能来擦除_list 的最后一个元素。
class myClass
{
private:
static list<int> _list;
public:
//constructors,destructors
void Class_f();
}
list<int> myCLass::_list;
void myClass::Class_f()
{
//..some code
list<int>::iterator it1;
it1=_list.end (); //erase for instance the last element _list
it1=_list.erase(it1);
//more code
}
但是,当编译它时,我会输出一条错误消息“列表迭代器不可递增”。为什么它给我这个错误?另外,为什么我不能使用像_list.erase(_list.end()) 这样更简单的东西以避免创建迭代器。
【问题讨论】:
-
_list.rbegin()应该是列表中的最后一个元素。
标签: c++