stl 删除
发布日期:2021-05-10 14:45:48 浏览次数:12 分类:精选文章

本文共 1763 字,大约阅读时间需要 5 分钟。

C++������erase���������������������������������������������������������������vector���map/list���������������������������������erase���������������

���vector���������

void erase(vector &v) {
for(vector::iterator vi = v.begin(); vi != v.end(); ) {
if(*vi % 2 == 0) {
std::cout << "Erasing " << *vi << std::endl;
vi = v.erase(vi);
} else {
++vi;
}
}
}

���vector������������������������

void erase2(vector &v) {
for(vector::reverse_iterator ri = v.rbegin(); ri != v.rend(); ) {
if(*ri % 2 == 0) {
std::cout << "Erasing " << *ri << std::endl;
v.erase((++ri).base());
} else {
++ri;
}
}
}

���������������������������������������������������������������reverse_iterator������������vector::erase������������������������������������������������������������������������������������������������������base()������������������������������������������������������������������������������������������������������

���map/list���������

������map������������������������������������������������������������������������������������������������������������������������

void erase(map &m) {
for(map::iterator mi = m.begin(); mi != m.end(); ) {
if(mi -> second % 2 == 0) {
std::cout << "Erasing " << mi -> second << std::endl;
m.erase(mi ++);
} else {
++mi;
}
}
}

������������������������������map������iterator������������������������������������������������������������������������������������erase������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

上一篇:时间显示
下一篇:udp epoll tcp epoll使用

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月22日 17时22分49秒