std::find
で見つけたstd::list
から要素を削除する必要があります。リストのend()
でstd::list::erase
を呼び出す動作は何ですか?私の場合はこのようなものです:`std :: list`の` 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);
位置(または範囲)有効であれば、関数は例外(無投保証を)投げることはありません。 それ以外の場合は、未定義の動作が発生します。
しかし、私が知らないのは、end()
がそこで有効であるかどうかです。
'end()'は最後の要素を1つ超えています。 –
cplusplus.comも同様に評判の良い情報源の範囲外です。代わりにcppreference.comを参照してください。 – Potatoswatter
@Potatoswatter:インターネットは評判の良い情報源の範囲外です。代わりに言語仕様を参照してください。 –