zoukankan      html  css  js  c++  java
  • C++ STL 简单记录

    1,STL提供三种类型的组件:容器、迭代器、算法。

    容器:

    顺序容器(vector、list、deque、string等)是一系列元素的有序集合;

    关联容器(set、multiset、map、multimap)包含查找元素的键值。

    迭代器:作用是遍历容器。

        for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
        {
            cout << *it << " ";
        }
        //迭代器是依附于容器的

    算法:排序算法、不可变序算法、变序算法、数值算法。

        #include <numeric>
        #include <algorithm>
        vector<int> v;
    
        sort(v.begin(), v.end());        //排序算法
        reverse(v.begin(), v.end());        //变序算法,反转
        accumulate(v.begin(), v.end());        //数值算法,计算和
        //可以看到算法不是容器的方法,而是独立于容器的

    2,set集合红黑树的平衡二叉检索树,但是元素没有重复,插入重复的插不成功;

    multiset允许插入重复的数字。

    3,map映照容器,键值与数据构成,红黑树实现的,插入元素的键值不允许重复,比较函数只对元素的键值比较;

    multimap允许插入重复键值的元素。

    4,deque双端队列容器,与vector类似采用线性表顺序存储结构,当考虑到容器元素的内存分配策略和操作性能是,deque相对于vector更有优势。从头部和中间插入元素只将原来的元素覆盖,不会增加新元素。

    5,list结构实现了双向链表的数据结构。对迭代器只能++、--,不能+n、-n。

    6,queue队列是先进先出的线性存储表,插入只能在队尾,删除只能在队首。

    7,priority_queue优先队列,只能在队首删除、队尾插入。

  • 相关阅读:
    布局重用 include merge ViewStub
    AS 常用插件 MD
    AS 2.0新功能 Instant Run
    AS .ignore插件 忽略文件
    AS Gradle构建工具与Android plugin插件【大全】
    如何开通www国际域名个人网站
    倒计时实现方案总结 Timer Handler
    AS 进行单元测试
    RxJava 设计理念 观察者模式 Observable lambdas MD
    retrofit okhttp RxJava bk Gson Lambda 综合示例【配置】
  • 原文地址:https://www.cnblogs.com/jiayith/p/4338819.html
Copyright © 2011-2022 走看看