C++ 标准模板库(STL)

C++ 原先的标准模板库容器包括:
deque, list, queue, priority_queuem stack, vector, map, multimap, set, multiset, bitset
C++11将bitset从容器分类移去了单独分类,并且添加了:
unordered_map, unordered_multimap, unordered_set, unordered_multiset

标准模板库特性:

表达式返回值描述
X::iteratoriterator满足前向迭代器要求的任何迭代器类别
X::value_typeTT类型
X u;创建一个空的容器u
X();创建一个空的无名容器
X u(a);复制构造函数传递条件:u==a
X u==a同上
r=aX&复制赋值传递条件:r==a
a.begin()
a.end()返回结尾后一个迭代器
a.size返回a.end()-a,begin()
a.swap(b)void互换a和b
a==bbool
a!=bboolreturn !(a==b)

C++11里将复制构造函数的操作改为了移动
并且添加了a.cbegin()和a.cend()两个函数,返回常量迭代器

对于序列:dequeue,list,priority_queue,stack,vector,支持以下特性:
注意:p,q,i,j是迭代器,n是整型

表达式返回值描述
X a(n,t)声明一个序列a,有n个值为t的元素
X(n,t)从创建一个无名的序列有n个值为t的元素
X a(i,j)声明一个序列a,初始化范围[i,j)
X(i,j)创建一个无名序列,初始化范围[i,j)
a.insert(p,t)iterator在p前插入t的拷贝
a.insert(p,n,t)void在p前插入n个t的拷贝
a.insert(p,i,j)void在p前插入[i,j)元素的拷贝
a.erase( p )iterator移除p元素
a.erase(p,q)iterator移除[p,q)元素
a.clear()voiderase(begin(),end())

另外有

表达式返回值描述容器
a.front()T&vector,list,deque
a.back()T&vector,list,deque
a.push_front(t)void在头部插入tlist,deque
a.push_back(t)void在尾部插入tvector,list,deque
a.pop_front(t)void擦除头部的值list,deque
a.pop_back()void擦除尾部的值vector,list,deque
a[n]T&*(a.begin()+n)vector,deque
a. at(n)T&同a[n],但a. at(n)会做越界检查vector,deque
  1. vector:代表向量array
    有两个类函数:rbegin(),rend(),返回反向的第一个迭代器和反向的最后一个迭代器之后的值

  2. deque:代表双向队列

  3. list:双向链表
    双向链表的成员函数:

表达式描述
void merge(list<T,Alloc>& x)将列表X与调用列表合并。两个列表都必须排序,合并后x清空,O(N)
void remove(const T & val)从列表中删除val的所有实例,O(N)
void sort()以<操作符进行排序,O(NlogN)
void splice(iterator pos, list<T, Alloc> x)将链表x插入到pos之前,x清空,O(1)
void unique()移除连续的相等元素
  1. forward_list(C++11):单链表,每个元素只连接下一个元素
  2. queue
表达式描述
bool empty() const判断队列是否为空
size_type size() const返回队列中的元素数
T& front()返回队列头部元素的引用
T& back()返回队列尾部元素的引用
void push(const T& x)在队列尾部插入x
void pop()移除队列头部的元素
  1. priority_queue:支持与queue同样的操作,最大值会被移到队列头部,潜在的缺省类是vector
  2. stack
表达式描述
bool empty() const判断栈是否为空
size_type size() const返回栈中的元素数
T& top()返回栈顶部元素的引用
void push(const T& x)在栈顶部插入x
void pop()移除栈顶部的元素
  1. array:定义在array头文件里,有固定的size,没有push_back和insert操作

四个联合容器

  1. set
  2. multiset
  3. map
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值