从末尾开始删除列表范围

3
调用使用列表末尾作为两个参数的 std::list::erase 的版本是否安全?
std::list<int> values;
values.push_back(4);
values.erase(values.end(), values.end());

当然,我期望从values.erase(values.end(), values.end());中得到的行为是什么都不做,但我不确定C++11规范是否保证了这一点。

1
如果first==last,则迭代器first不需要可解引用:擦除一个空范围是无操作。 - vaultah
1个回答

4

调用std::list::erase时,传递一个空范围是安全的。

删除[first;last)范围内的元素。

如果first==last,则迭代器first无需解引用:删除一个空范围是不执行任何操作的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接