• 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容器对有重复的元素只取其中的一个。 
  • 相关阅读:
    从头开始搭建分布式日志平台的docker环境
    spring mvc+ELK从头开始搭建日志平台
    两个与spring事务相关的问题
    shiro realm 注解失败问题解决过程
    如何解决CRUD操作中与业务无关的字段赋值
    通过angularjs的directive以及service来实现的列表页加载排序分页
    项目中应用eventbus解决的问题
    统一配置中心
    java枚举与.net中的枚举区别
    列表页的动态条件搜索
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/3567770.html
Copyright © 2020-2023  润新知