Effective STL: 不同容器删除元素的方法
来源:互联网 发布:mac 最流行的解压软件 编辑:程序博客网 时间:2024/05/27 14:14
不同容器删除元素的方法
去除一个容器中有特定值的所有对象:
如果容器是vector、string或deque,使用erase-remove惯用法。
如果容器是list,使用list::remove。
如果容器是标准关联容器,使用它的erase成员函数。去除一个容器中满足一个特定判定式的所有对象:
如果容器是vector、string或deque,使用erase-remove_if惯用法。
如果容器是list,使用list::remove_if。
如果容器是标准关联容器,写一个循环来遍历容器元素,当你把迭代器传给erase时记得后置递增它(在erase一个元素之后,指向该元素的迭代器就失效了,所有在erase前要获取指向下一个元素的迭代器)。AssocContainer<int> c;...for (AssocContainer<int>::iterator i = c.begin(); i != c.end(); /*nothing*/ ) // for循环的第三部分是空的;i现在在下面自增{ if (badValue(*i)) { c.erase(i++); // 对于坏的值,把当前的i传给erase,然后作为副作用增加i; } else { ++i; // 对于好的值,只增加i }}
在循环内做某些事情(除了删除对象之外):
如果容器是标准序列容器,写一个循环来遍历容器元素,每当调用erase时记得都用它的返回值更新迭代器。如果容器是标准关联容器,写一个循环来遍历容器元素,当你把迭代器传给erase时记得后置递增它
2 0
- Effective STL: 不同容器删除元素的方法
- Effective STL--不同容器删除特定元素的方法
- Effective STL-各种容器正确删除元素方法
- Effective STL 读书笔记之慎重选择删除容器元素的方法
- 删除STL容器元素的方法
- effective stl 第九条: 慎重选择删除元素的方法
- STL容器元素的删除
- STL:循环删除容器中元素的方法和陷阱
- STL:循环删除容器中元素的方法和陷阱
- STL:循环删除容器中元素的方法和陷阱
- STL序列式指针容器中删除元素的方法
- 总结STL中容器中元素的删除方法
- C++ STL容器遍历删除元素的方法
- 选择删除STL标准容器元素的方法
- stl容器中的元素删除方法
- STL容器删除元素的陷阱(转)
- STL容器删除元素的陷阱
- STL容器的删除元素问题
- 关于GCD(Grand Center Dispatch)
- 找到根因,才能从根本上解决问题
- hihocoder-第十一周 树中的最长路
- 常见网络错误
- 循环队列队满和队空的判定
- Effective STL: 不同容器删除元素的方法
- java io流
- PCB设计资料:看到最后才知道是福利
- 设计模式的原则解读
- LabVIEW上位机与串口通信
- LNK1123: failure during conversion to COFF: file invalid or corrupt问题的解决
- 交换两个值的三种方法
- 基于web的kafka监控工具KafkaOffsetMonitor(内部js和css已经本地化)
- HDU 2874 公共祖先 LCA