zoukankan      html  css  js  c++  java
  • STL: set和map的区别、联系、使用

    set是一种关联式容器,其特性如下:

    • set以RBTree作为底层容器
    • 所得元素的只有key(键)没有value(值)
    • 不允许出现键重复
    • 所有的元素都会被自动排序
    • 不能通过迭代器来改变set的值,因为set的值仅有键,键不能被修改

    map和set一样是关联式容器,它们的底层容器都是红黑树,但是,map是存储键值对。

    它的特性如下:

    • map以RBTree作为底层容器
    • 所有元素都是键+值存在
    • 不允许键重复
    • 所有元素是通过键进行自动排序的
    • map的键是不能修改的,但是其键对应的值是可以修改的
    #include <map>  
      
    #include <string>  
      
    #include <set>
    #include <iostream>
    
    using namespace std;
    
    int main() {
    
        set<int> iset;
        iset.insert(11);
        iset.insert(12);
        iset.insert(13);
        iset.insert(14);
        for (set<int>::iterator iter = iset.begin(); iter != iset.end(); ++iter)
            cout << *iter << endl;
        
    
        cout << endl;
    
    
        map<int, string> mapStudent;  
        mapStudent.insert(pair<int, string>(1, "student_one"));  
        mapStudent.insert(pair<int, string>(2, "student_two"));  
    
        mapStudent.erase(mapStudent.begin(), mapStudent.end());  // 清空map内的元素
    
        pair<int, string>  Student3(3, "student_three");
        mapStudent.insert(Student3);  
    
    
        map<int, string>::iterator iter;  
      
        for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++)  
             cout << "first: "<< iter->first << ",      second:" << iter->second << endl;  
    
        return 0;
    }
     

    编译运行:

    .

    /************* 社会的有色眼光是:博士生、研究生、本科生、车间工人; 重点大学高材生、普通院校、二流院校、野鸡大学; 年薪百万、五十万、五万; 这些都只是帽子,可以失败千百次,但我和社会都觉得,人只要成功一次,就能换一顶帽子,只是社会看不见你之前的失败的帽子。 当然,换帽子决不是最终目的,走好自己的路就行。 杭州.大话西游 *******/
  • 相关阅读:
    DuckHunter Attacks
    iOS10 UI教程视图的边界与视图的框架
    iOS10 UI教程视图的几何形状
    iOS10 UI教程禁用视图与用户的交互
    iOS10 UI教程基改变视图的外观与视图的可见性
    分享Kali Linux 2016.2第47周虚拟机
    iOS10 UI教程基础窗口的内容与设置起始窗口
    分享Kali Linux 2016.2第47周镜像
    Swift3.0语言教程字符串与URL的数据转换与自由转换
    人机接口设备攻击(HID Attack)
  • 原文地址:https://www.cnblogs.com/happybirthdaytoyou/p/13857170.html
Copyright © 2011-2022 走看看