STL容器逆向时删除方法

柔情只为你懂 2022-06-11 00:14 248阅读 0赞
  1. std::deque<int> q;
  2. for(int i(0);i<5;++i)q.push_back(i);
  3. for (auto pos = q.rbegin();pos != q.rend(); ++pos)
  4. {
  5. if(*pos == 3)
  6. {
  7. q.erase(--(pos.base()));
  8. break;
  9. }
  10. }
  11. std::for_each(q.begin(),q.end(),[](const int &i){std::cout<<i<<std::endl;});

原理:&*(reverse_iterator(i)) == &*(i - 1)

参考:http://www.drdobbs.com/cpp/184401406

diagram2.gif

发表评论

表情:
评论列表 (有 0 条评论,248人围观)

还没有评论,来说两句吧...

相关阅读

    相关 stl容器排序

    C++编程优与Pascal的原因之一是C++中存在STL(标准模板库)。STL存在很多有用的方法。 C++模板库中的许多方法都需要相关参数有序,例如Sort()。显然,如果你

    相关 STL 容器小结

    顺序容器:为程序员提供了控制元素存储和访问顺序的能力。这种顺序不依赖于元素的值,而是与元素加入容器是的位置相对应。 顺序容器几乎可以保存任意类型的元素。Eg: vector<