【问题标题】:List erase range from end to end从头到尾列出擦除范围
【发布时间】:2016-06-05 03:46:17
【问题描述】:

调用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 规范是否能保证这一点。

【问题讨论】:

标签: c++ list c++11


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-07-17
    • 2020-11-09
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多