zoukankan      html  css  js  c++  java
  • map set区别

    STL中的容器有顺序容器 (vector,list,deque),关联容器(map,set)还有一些其他容器。
    根据不同的场合选择不同的容器,会有意想不到的收获。


    Map是单词mapping(映射)的缩写
    Set是单词set(集合)的意思;


    Map和set内部的元素不可以重复,这一点不同于multimap和multiset。


    map 和 set使用相同的数据结构,其内部实现都是R-B树,不同的是其中的Iterator的格式不一样,map使用pair这种配对的数据,并根据pair中第一个元素的值进行排序,而set的iterator并不具备天生的pair类型的元素,直接根据其中的元素进行排序,下面的伪码也许可以更清楚的表述:

     C++ Code 
    1
    2
     
    typedef template<class Key, class Value> rb_tree< pair<Key, Value> > map;
    typedef template<class T> rb_tree< T > set;

    map的节点是一对数据,set的节点是一个数据。

    map的形式 map<type1, type2> mymap;
    set的形式  set<type> myset;
     一般map是对有关联的事物存储,操作。  
      set是对一个字段进行存储,操作。

  • 相关阅读:
    python:返回函数,闭包
    对象的行为和数组
    类、对象和包
    Java语言中的程序流程控制
    初识Java,Java语言概述
    有限广播地址与直接广播地址
    H3C模拟器HCL注意事项
    HDLC协议
    NETBIOS的作用
    HP DL380G7 RAID配置
  • 原文地址:https://www.cnblogs.com/hellogiser/p/map-set.html
Copyright © 2011-2022 走看看