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. 3
  21. 1
  22. 2
  23. 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. 1
  22. 2
  23. 3
  24. 也就是说,set容器对有重复的元素只取其中的一个。
上一篇:慕课网-安卓工程师初养成-5-4 使用 Eclipse 调试程序


下一篇:toString 方法在数组中的使用