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

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

下面是举个例子:

 

[cpp] 
​​view plain​​
​​copy​​






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. int> v;
10. //如果使用insert(1)不指定插入位置,会出错
11. v.insert(v.begin(),2);
12. v.insert(v.begin(),1);
13. v.insert(v.begin(),3);
14. 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





[cpp]
​​view plain​​
​​copy​​






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. 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. 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容器对有重复的元素只取其中的一个。