私は以下のクラスを持っています。静的メンバー_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 iterator not incrementable"というメッセージが表示されてエラーが表示されます。どうしてこのエラーが出るのですか?さらに、イテレータの作成を避けるため、_list.erase(_list.end())
のような簡単なものを使用できないのはなぜですか?
'_list.rbegin()'リストの最後の要素でなければなりません。 –