vector是我使用比较多的一个容器,它相当于一个动态的数组,在STL中给他提供了很多接口,简单易懂,接下来简单的演示一下它是如何使用的。
我一般使用的一些函数接口有size(),reserve(),empty(),begin(),end(),push_back(),find(),erase()。
使用vector一般都会用到迭代器iterator,它是在STL中数据结构与算法的桥梁。它相当于一个指针,用来指向vector中的元素。
vector<int>::iterator it;
1 #include <VECTOR> 2 #include <IOSTREAM> 3 #include <ITERATOR> 4 #include <algorithm> 5 6 using namespace std; 7 8 int main() 9 { 10 vector<int> ivec; 11 vector<int>::const_iterator it=ivec.begin(); 12 ivec.reserve(10); 13 cout<<ivec.size()<<endl; 14 if (ivec.empty()) 15 { 16 cout<<"empty!\n"; 17 } 18 /*for (vector<int>::const_iterator it=ivec.begin();it!=ivec.end();it++) 19 { 20 cout<<*it<<"\t"; 21 } 22 cout<<endl;*/ 23 24 //插入0-9 25 int i; 26 for (i=0;i<10;i++) 27 { 28 ivec.push_back(i); 29 } 30 cout<<ivec.size()<<endl; 31 if (ivec.empty()) 32 { 33 cout<<"empty!\n"; 34 } 35 36 //输出vector中的数据 37 for (it=ivec.begin();it!=ivec.end();it++) 38 { 39 cout<<*it<<"\t"; 40 } 41 cout<<endl; 42 43 //查找vector中有没有6和12,有的话删除 44 vector<int>::iterator iter; 45 iter=find(ivec.begin(),ivec.end(),6); 46 if (iter!=ivec.end()) 47 { 48 cout<<"vector中有6~"<<endl; 49 ivec.erase(iter); 50 } 51 else 52 { 53 cout<<"没找到6~"<<endl; 54 } 55 for (it=ivec.begin();it!=ivec.end();it++) 56 { 57 cout<<*it<<"\t"; 58 } 59 cout<<endl; 60 61 iter=find(ivec.begin(),ivec.end(),12); 62 if (iter!=ivec.end()) 63 { 64 cout<<"vector中有12~"<<endl; 65 ivec.erase(iter); 66 } 67 else 68 { 69 cout<<"没找到12~"<<endl; 70 } 71 72 return 0; 73 }
原文地址:http://www.cnblogs.com/superzzh/p/3826035.html