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

上一篇:Linux下文件删除的原理


下一篇:【原创】REPORT自动生成工具