美文网首页
容器综合

容器综合

作者: 人不知QAQ | 来源:发表于2019-12-30 22:04 被阅读0次

    Vector

    vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲)。

    尾部添加或移除元素非常快速。但是在中部或头部插入元素或移除元素比较费时

    Deque  和vector一样都是STL的容器,deque是双端数组,而vector是单端的。

    以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲)。

    #########

    priority_queue<int> p1; //默认是 最大值优先级队列

    //priority_queue<int, vector<int>, less<int> > p1; //相当于这样写

    priority_queue<int, vector<int>, greater<int>> p2; //最小值优先级队列

    greater    降序

    less  升序

    ###############

    stack  

    先进后出

    链式堆栈

    数组堆栈

    Queue    “先进先出”

    List list是一个双向链表容器,可高效地进行插入删除元素。  比数组好

    list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符。It++(ok) it+5(err)

    Set    红黑树的    一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列

    集合中的元素按一定的顺序排列

    #########pair< set<int>::iterator , set<int>::iterator > pairIt = setInt.equal_range(5);

    map      是标准的关联式容器    (key,value)红黑树变体的平衡二叉树

            #######map[key]=value。map<int, char> mapA;mapStu.insert(  pair<int,string>(3,"小张")  );

                            map<int, int> _map;

        _map[0] = 1;

    iter->first << " : " << iter->second

    四、通过数组的方式插入值

    ########mapStu[3] = “小刘";

    ##########mapStu[5] = “小王";

    ? list的使用场景:比如公交车乘客的存储,随时可能有乘客下车,支持频繁的不确实位置元素的移除插入。

    ? set的使用场景:比如对手机游戏的个人得分记录的存储,存储要求从高分到低分的顺序排列。

    ? map的使用场景:比如按ID号存储十万个用户,想要快速要通过ID查找对应的用户。二叉树的查找效率,这时就体现出来了。如果是vector容器,最坏的情况下可能要遍历完整个容器才能找到该用户。

    相关文章

      网友评论

          本文标题:容器综合

          本文链接:https://www.haomeiwen.com/subject/bulvoctx.html