STL容器逆向时删除方法

来源:互联网 发布:c语言多线程编程实例 编辑:程序博客网 时间:2024/06/06 06:30
std::deque<int> q;for(int i(0);i<5;++i)q.push_back(i);for (auto pos = q.rbegin();pos != q.rend(); ++pos){if(*pos == 3){q.erase(--(pos.base()));break;}}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


原创粉丝点击