3
4

3 回答 3

10

我认为v.erase(v.end(), v.end())会被很好地定义并且不会删除任何内容。

于 2009-11-05T04:34:29.000 回答
10

C++ 标准说该erase(q1,q2)成员“擦除范围 [q1,q2) 中的元素”(参见第 23.1.1 节)。由于范围不包括最后一个元素,

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

是有效的并且不会删除任何内容。

于 2009-11-05T04:57:02.323 回答
2

C++ 参考声明:

如果满足以下条件,则迭代器first不需要可取消引用first==last:擦除空范围是无操作的。

于 2016-07-13T16:52:18.277 回答