std::list
で見つけた後、から要素を削除する必要がありstd::find
ます。リストstd::list::erase
ので呼び出す動作はどうなりますか?end()
私の場合は次のようなものです。
std::list<T> mylist;
T value;
std::list::iterator it = std::find(mylist.begin(), mylist.end(), value);
std::list::iterator next = mylist.erase(it);
cplusplus.comによると:
位置(または範囲)が有効な場合、関数は例外をスローしません(スローなしの保証)。そうしないと、未定義の動作が発生します。
end()
しかし、私が知らないのは、そこで有効と見なされるかどうかです。