vector与set区别(基础知识)

首先,vector是序列式容器而set是关联式容器。set包含0个或多个不重复不排序的元素。也就是说set能够保证它里面所有的元素都是不重复的。另外对set容器进行插入时可以指定插入位置或者不指定插入位置。如insert(v.begin(),1),也可以直接用insert(1)。还有一点是

set对一些操作符没有进行重载,如<

下面是举个例子:

 

 

  1. #include <iostream>  
  2. #include <list>  
  3. #include <vector>  
  4. #include <deque>  
  5. #include <set>  
  6. using namespace std;  
  7. int main(void)  
  8. {  
  9.     vector<int> v;  
  10.     v.insert(v.begin(),1);  //如果使用insert(1)不指定插入位置,会出错  
  11.     v.insert(v.begin(),2);  
  12.     v.insert(v.begin(),1);  
  13.     v.insert(v.begin(),3);  
  14.     vector<int>::iterator vp = v.begin();  
  15.     for(vp = v.begin();vp < v.end(); vp++)  
  16.         cout << *vp << endl;  
  17.     return 0;  
  18. }   
  19.   
  20. 运行程序输出的结果是:  
  21. 3  
  22. 1  
  23. 2  
  24. 1  

 

 

 

  1. #include <iostream>  
  2. #include <list>  
  3. #include <vector>  
  4. #include <deque>  
  5. #include <set>  
  6. using namespace std;  
  7. int main(void)  
  8. {  
  9.     set<int> v;  
  10.     v.insert(v.begin(),1);  
  11.     v.insert(v.begin(),2);  
  12.     v.insert(v.begin(),1);  
  13.     v.insert(v.begin(),3);  
  14.     set<int>::iterator vp = v.begin();  
  15.     //for(vp = v.begin();vp < v.end(); vp++)  //如果使用这句会出错,因为set容器对<没有重载  
  16.     while(vp!=v.end())  
  17.         cout << *vp++ << endl;  
  18.     return 0;  
  19. }  
  20.   
  21. 运行后结果是:  
  22. 1  
  23. 2  
  24. 3  
  25. 也就是说,set容器对有重复的元素只取其中的一个。 

 

posted @ 2014-02-25 21:51  zzyoucan  阅读(773)  评论(0编辑  收藏  举报