首页 > 代码库 > vector

vector

  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-925     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     else52     {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     else68     {69         cout<<"没找到12~"<<endl;70     }71     72     return 0;73 }