cfa*_*771 0 c++ stl
调用迭代方法是否安全,例如STL容器擦除(覆盖2个迭代器),例如在我的情况下std::vector::erase(),两个参数都是vec.end()?我做了一个实验,看起来调用什么也没做,但我想确保我可以在代码中安全地使用它,否则我必须测试我的迭代器并避免erase()它们是相等的.
std::vector::erase()
vec.end()
erase()
us2*_*012 7
C++标准(n3337),23.2.3,序列容器,表100('序列容器要求) - 行a.erase(q1,q2):
a.erase(q1,q2)
效果:擦除范围内的元素[q1,q2).
[q1,q2)
这意味着它a.erase(q,q)是安全的,因为它什么都不做.
a.erase(q,q)
Loki Astari对这个SO问题的回答有一份C++标准草案清单.不幸的是,官方副本不是免费提供的,所以我使用的是n3337,它似乎是最接近C++ 11的.
归档时间:
13 年,2 月 前
查看次数:
186 次
最近记录: