3
4

3 に答える 3

10

C++ 標準では、erase(q1,q2)メンバーは「範囲 [q1,q2) 内の要素を消去する」と述べています (セクション 23.1.1 を参照)。範囲は最後の要素を除外するため、

v.erase(v.end(), v.end());

は有効で、何も消去されません。

于 2009-11-05T04:57:02.323 に答える
10

v.erase(v.end(), v.end())明確に定義され、何も消去されないと思います。

于 2009-11-05T04:34:29.000 に答える
2

C++ リファレンスの主張:

次の場合、イテレータfirstは逆参照可能である必要はありませんfirst==last: 空の範囲の消去はノーオペレーションです。

于 2016-07-13T16:52:18.277 に答える