STL コンテナーの消去 (2 つのイテレーターを使用するオーバーライド) などの反復メソッドを呼び出すことは安全std::vector::erase()
ですvec.end()
か? 私は実験を行いましたが、呼び出しは何もしないように見えますが、コードで安全に使用できることを確認したいerase()
です。
2 に答える
7
C ++標準(n3337)、23.2.3、シーケンスコンテナ、表100('シーケンスコンテナの要件)-行a.erase(q1,q2)
:
効果:範囲内の要素を消去します
[q1,q2)
。
これは、a.erase(q,q)
何もしないので安全であることを意味します。
このSOの質問に対するLokiAstariの回答には、C++標準のドラフトのリストがあります。残念ながら公式コピーは無料で入手できないため、C++11に最も近いと思われるn3337を使用しています。
于 2013-02-12T02:14:11.970 に答える
2
安全 ; end()-> end()は空の範囲であるため、これは効果的なノーオペレーションです。
于 2013-02-12T02:15:55.447 に答える