• 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;

  • 相关阅读:
    <<浪潮之巅>>阅读笔记三
    <<浪潮之巅>>阅读笔记二
    <<浪潮之巅>>阅读笔记一
    《需求工程——软件建模与分析》阅读笔记三
    个人总结
    学习进度条(第十六周)
    人月神话阅读笔记03
    第十五周学习进度条
    人月神话阅读笔记02
    操作
  • 原文地址:https://www.cnblogs.com/sasuke-/p/5183360.html
Copyright © 2020-2023  润新知