C++中 vector结合迭代器实现增删操作!
来源:互联网 发布:手机看报纸软件 编辑:程序博客网 时间:2024/06/06 18:16
1 说明:目的是为了将vector里 符合isdel==true的元素删掉。
2 实现代码
#include "stdafx.h"#include <assert.h>#include <time.h>#include <ObjectArray.h>using namespace std;class Test{public:Test(bool isdel){this->is_delete=isdel;}bool is_delete;};void print(vector <Test> &v){std::vector<Test >::iterator iter;for(iter=v.begin();iter!=v.end();++iter){cout<<(*iter).is_delete<<" ";assert(!(*iter).is_delete);}cout<<endl;}void add(vector <Test> &v,bool b){Test *t= new Test(b);v.push_back(*t);delete t;cout<<endl;}void vec_del(vector <Test> &v){std::vector<Test >::iterator iter;for(iter=v.begin();iter!=v.end();){if((*iter).is_delete==true){iter=v.erase(iter);}else{++iter;}}}int _tmain(int argc, _TCHAR* argv[]){vector <Test > svec;std::vector<Test >::iterator iter;srand(time(NULL));cout<<"随机赋值:"<<endl;for(int i=0;i<100;++i){int value=rand()%2;add(svec,value);cout<<"i="<<i<<" T/F: "<<svec.at(i).is_delete<<endl;}cout<<endl<<"删除 true:"<<endl;vec_del(svec);print(svec);cout<<endl;system("pause");return 0;}
1 0
- C++中 vector结合迭代器实现增删操作!
- Android中结合OrmLite for android组件对SQLite的CRUD(增删改查)操作实例
- Android中结合OrmLite for android组件对SQLite的CRUD(增删改查)操作实例
- Android中结合OrmLite for android组件对SQLite的CRUD(增删改查)操作实例
- Android中结合OrmLite for android组件对SQLite的CRUD(增删改查)操作实例
- C语言实现二叉排序树的增删查操作
- C语言实现顺序表增删查改操作
- C语言实现单链表基础操作--增删查改
- C++Vector简单操作
- C#.Net中ADO.net数据增删查改操作
- ASP.NET中利用Repeater实现增删改操作
- Spring中jdbcTemplate实现增删改查操作
- stl--vector 操作实现
- C++STL中vector容器类的简单操作
- C/C++中vector的操作(排序、删除)
- C++/STL_中Vector的基本操作与示例
- C语言实现 vector
- c实现vector
- 用工厂方法(Factory Method)和 单例模式(Singleton)实现抽象工厂(Abstract Factory)
- UVa 164 - String Computer
- 百度员工离职总结:如何做个好员工
- Android网络连接判断与处理
- 【Qt编程】基于Qt的词典开发系列<十二>调用讲述人
- C++中 vector结合迭代器实现增删操作!
- hybrid app
- HELP!!!混乱+迷茫+懒惰的我
- JAVA 中的 char, byte
- java interface
- 胜利大逃亡
- c++:primer plus 源代码
- The Great Pan
- 简单的从网页获取Email的Java小程序