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-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 }

 

posted on 2014-07-05 16:44  再见猪小华  阅读(144)  评论(0编辑  收藏  举报

导航