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优先队列,只能在队首删除、队尾插入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值