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容器对有重复的元素只取其中的一个。 
  • 相关阅读:
    线程 ,进程和协程
    HTML
    自定义进程池的方法
    线程,进程 ,队列 基本用法总结
    socket 和 SocketServer 模块
    json 和 pickel 详解
    面向对象进阶篇
    面向对象基础 反射
    模块
    字符串格式化
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/3567770.html
Copyright © 2011-2022 走看看