STL容器总结

1. 队列(queue)

1.1 定义:

队列是一种逻辑数据结构,其具有先进先出的特性,只能在队的前端进行删除, 在队的后端进行插入。

1.2 容器类型:

是容器的容器,内部是使用其它容器来存放具体数据。
内部默认数据存放容器为deque

1.3 队列函数列表:

queue入队,如例:q.push(x); 将x 接到队列的末端。

queue出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。

访问queue队首元素,如例:q.front(),即最早被压入队列的元素。

访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。

判断queue队列空,如例:q.empty(),当队列空时,返回true。

访问队列中的元素个数,如例:q.size()

2. 栈(stack)

2.1 定义:

队列是后入先出(LIFO)数据结构,插入和删除只在表的一端进行。这一端称为栈顶(Stack Top),另一端则为栈底(Stack Bottom)。堆栈的元素插入称为入栈,元素的删除称为出栈。

2.2 容器类型:

是容器的容器,内部是使用其它容器来存放具体数据。
内部默认数据存放容器为deque,
指定其他容器的语法为:

std::stack<int,std::list<int>>; //使用list作为实现容器

2.3 堆栈函数列表:

empty() 堆栈为空则返回真

pop() 移除栈顶元素

push() 在栈顶增加元素

size() 返回栈中元素数目

top() 返回栈顶元素

3. 链表(list)

3.1 定义:

List使用一个doubly linked list(双向串列)管理元素,按惯例,C++标准库并未明定实现方式,只是遵守list的名称、限制和规格。List其实相当于数据结构中的双链表。

3.2 容器类型:

C++标准库并未明定实现方式,只是遵守list的名称、限制和规格。List其实相当于数据结构中的双链表。

3.3 链表函数列表:

c.empty() 容器为空返回true,不为空返回false,相当于size()==0
c.size() 返回当前元素的个数
c.front() 返回第一个元素(不检查是否存在第一个元素)
c.back() 返回最后一个元素(不检查是否存在最后一个元素)
1 c.begin() 返回一个bidirectional iterator指向第一个元素
2 c.end() 返回一个bidirectional iterator指向的之后一个元素
3 c.cbegin() 返回一个const bidirectional iterator指向的第一个元素(C++11新特性)
4 c.cend() 返回一个const bidirectional iterator指向的最后一个元素(C++11新特性)
5 c.rbegin() 返回一个反向迭代器(reverse iterator)指向的第一个元素
6 c.rend() 返回一个reverse iterator指向的最后一个元素
7 c.crbegin() 返回一个const reverse iterator指向的第一个元素(C++新特性)
8 c.crend() 返回一个const reverse iterator指向的最后一个元素(C++11新特性)
1 c.unique() 如果存在若干相邻数值相同的元素,就移除重复元素,只留一个
2 c.unique(op) 如果存在若干相邻元素都使op()结果为true,移除重复元素,只留一个
3 c.splise(pos,c2) 将c2内所有的元素转移到c之内,迭代器指向的pos位置之前
4 c.splise(pos,c2,c2pos) 将c2内的c2pos所指元素转移到c的pos所指位置
5 splise(pos,c2,c2beg,c2end) 将c2区间[beg,end)内所有的元素转移到c内的pos之前
6 c,sort() 以operator<定义的准则进行排序
7 c.sort(op) 以op()定义的准则进行排序
8 c.merge(c2) 假设c和c2容器都包含op()准则下的已排序元素,将c2的全部元素转移到c,并保证合并后的list依然有序
9 c.merge(c2,op) 在op()准则下进行合并,合并后的元素有序
10 c.reverse() 将所有元素逆序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zack_Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值