zoukankan      html  css  js  c++  java
  • 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容器对有重复的元素只取其中的一个。 
  • 相关阅读:
    实时需要分析
    .NET 单元测试的艺术&单元测试之道C#版
    代码演示C#各2.0到8.0版本[FK,2.0-4.8.0]
    微软Visual Studio Code 0.8.0发布,新增多种主题
    ASP.NET 5 Beta 7 版本
    软件开发设计原则
    Immutable(不可变)集合
    使用Hystrix提高系统可用性
    微软发布 Windows Server 2016 预览版第三版,开发者要重点关注Nano Server
    Akka.NET v1.0 已发布,支持Mono
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/3567770.html
Copyright © 2011-2022 走看看