vector删除元素
来源:互联网 发布:unity3d htc vive开发 编辑:程序博客网 时间:2024/06/14 00:51
/***1.对于节点式容器(map, list, set)元素的删除,插入操作会导致指向该元素的迭代器失效,其他元素迭代器不受影响2.对于顺序式容器(vector,string,deque)元素的删除、插入操作会导致指向该元素以及后面的元素的迭代器失效*//**顺序容器删除操作 *//*#include<iostream>#include<vector>using namespace std;int main(){vector<int> veci;for(int i=0;i<10;++i) { veci.push_back(i); veci.push_back(i); veci.push_back(i+2); } vector<int>::iterator iter;for(iter=veci.begin();iter!=veci.end();++iter) cout<<*iter<<" "; cout<<endl;for(iter=veci.begin();iter!=veci.end();) { if(*iter==7) {iter=veci.erase(iter);//指向了删除后元素的下一个元素 } else ++iter;//如果不等于就++ } for(iter=veci.begin();iter!=veci.end();++iter) cout<<*iter<<" ";}*//**节点式容器 */#include<iostream>#include<list>using namespace std;int main(){list<int> lisi;for(int i=0;i<10;++i) { lisi.push_back(i); lisi.push_back(i); lisi.push_back(i+2); } list<int>::iterator iter;for(iter=lisi.begin();iter!=lisi.end();++iter) cout<<*iter<<" "; cout<<endl;for(iter=lisi.begin();iter!=lisi.end();) { if(*iter==7) {lisi.erase(iter++);//因为节点式只会导致当前节点迭代器失效,所以删除节点的同时对迭代器进行后移的操作,因为其他元素不会失效 } else ++iter;//如果不等于就++ } for(iter=lisi.begin();iter!=lisi.end();++iter) cout<<*iter<<" ";}
阅读全文
0 0
- c++ vector删除元素
- vector删除元素
- c++ vector删除元素
- vector删除元素 演示
- 循环删除vector元素
- vector连续删除元素
- c++ vector删除元素
- Vector删除元素
- Vector容器删除元素
- vector元素删除
- vector删除单个元素
- vector删除元素
- C++ vector删除元素
- c++ vector删除元素
- vector删除元素
- Vector 删除元素
- STL vector 删除元素
- vector删除元素
- Java多线程之主从设计模式-yellowcong
- thinkphp 集成swagger-php
- 10-06 DFS学习——经典例题之八皇后
- Java集合类总结
- linux学习笔记 day1
- vector删除元素
- 171005 逆向-IAT导入地址表
- 技术与技术人员的价值
- 10-06 DFS学习——经典例题之数独(题目转自洛谷华南师大附中团队邀请赛,未ac,90分)
- window 安装composer
- XShell 连接 VM中Ubuntu问题
- 20171006-Java学习中static加载知识点
- js分页
- Programming Assignment 1: Percolation