列出端到端的擦除范围

时间:2016-02-23 10:43:29

标签: c++ list c++11

调用2个参数版本的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 个答案:

答案 0 :(得分:4)

将空范围传递给std::list::erase是安全的。

  

删除范围内的元素[first;最后一个)。

     

如果first:删除空范围是无操作,则迭代器first==last不需要可解除引用。