zoukankan      html  css  js  c++  java
  • set和map容器、

    set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。
    平衡二叉检索树使用中序遍历算法,检索效率高于vector、deque和list等容器,另外使用中序遍历可将键值按照从小到大遍历出来。
    构造set集合主要目的是为了快速检索,不可直接去修改键值。要注意的是,它不会重复插入相同的键值,而采取忽略处理。

    set集合主要是处理集合之类的问题

    八、  set  集合容器
    1. 创建   set  集合对象
    set<int> S;
    2. 插入元素
    S.insert(2);
    3. 删除元素
    S.erase(2);
    4. 查找元素
    set<int>::iterator it;
    //成功返回元素迭代器位置,失败返回end()迭代器位置
    it=S.find(2);
    5. 自定义比较函数
    (1)元素不是结构体
    struct Comp
    {
    bool operator () (const int &A,const int &B)
    {
    //由大到小的顺序
    returnA>B;
    }
    };
    set<int,Comp> S;
    (2)元素是结构体
    struct Info
    {
    float Score;
    string Name;
    bool operator < (const Info &I) const
    {
    //按Score由大到小排列
    return I.Score<Score;
    }
    };
    set<Info> S;

    map呢只要是处理一一对应之类的问题,比如单调递增函数就是一种一一对应的关系,因为每一个x有且只有一个y与之对应

    十、  map  映照容器
    1. 创建  map  对象
    map<int,char> M;
    2. 删除元素
    M.erase(2);
    3. 查找元素
    map<int,char>::iterator it;
    //成功返回键值所在迭代器位置,失败返回end()迭代器位置
    it=M.find(2);
    4. 自定义比较函数
    (1)元素不是结构体
    struct Comp
    {
    bool operator () (const int &A,const int &B)
    {
    //键值由大到小
    returnA>B;
    }
    };
    map<int,char,Comp> M;
    (2)元素是结构体
    struct Info
    {
    float Score;
    string Name;
    bool operator < (const Info &I) const
    {
    //按Score由大到小排列
    return I.Score<Score;
    }
    };
    map<Info,int> M;

  • 相关阅读:
    Java通过socket和DTU,RTU连接工业传感器通信
    没有远程桌面授权服务器可以提供许可证 相关,注册表项获得权限方法
    freertos内存pvPortMalloc 和 malloc 区别 ,以及全局变量占用情况
    自学it吧论坛
    安全学习地址
    服务器zfs文件系统修复过程记录
    第1年10月11日 android canvas
    第1年10月9日 swiftui
    第1年9月28日 Android 4.4以后,浏览器内核采用的chromium,可以支持webrtc
    第1年9月19日 ios librtmp
  • 原文地址:https://www.cnblogs.com/sasuke-/p/5183360.html
Copyright © 2011-2022 走看看