c++ STL deque容器成员函数
deque是双向队列,即可以在头部插入删除,也可以在尾部插入删除。内部并不连续,这一点和vector并不一样。可能第1个元素和第2个元素的地址是不连在一起的。在使用时用it迭代器会安全一点。
这是c++ 98标准的,不是c++11的。11标准新加的函数没在这里说明。里面大部分函数是经过测试的才得出的结论。
|
函数(下面将iterator简化为it) |
描述 |
|
Void c.assign(it beg,it end) |
将拷贝[beg; end)区间中的数据用覆盖式地赋值给c。第2个参数是不包含元素的。 这两个函数均会将原来的容器清空再赋值。Iterator是c相同的容器类型。 |
|
it c.at(int idx) |
传回索引idx所指的数据,idx从0开始,如果idx越界,抛出out_of_range。 |
|
reference c.back() |
传回最后一个数据,不检查这个数据是否存在。只传不删。注意返回值与begin不同。 |
|
it c.begin() |
传回迭代器中的第一个数据地址。返回的是第1个数据的地址,即iterator型。 |
|
Void c.clear() |
移除容器中所有数据,被清空了,再访问里面的数据会出错。 |
|
Void c.empty() |
判断容器是否为空。返回值为bool型。若空则返true,若非空返false。 |
|
it c.end() |
指向迭代器中的最后一个数据的下一个数据的地址,该地址是没有元素的,与begin搭配的。若容器为空,返回与begin同样地址。 |
|
It c.erase(it pos) |
删除pos位置的数据,传回下一个数据的位置。 |
|
Reference c.front() |
传回容器中第一个数据,不检查这个数据是否存在。只传不删。 |
|
c.get_allocator() |
使用构造函数返回一个拷贝。//此函数暂不知道怎么用,windows下不太一样。原型allocator_type get_allocator() const; |
|
It c.insert(it pos,元素类型 elem) |
在pos位置插入一个elem元素拷贝,传回新数据位置。逻辑上pos处的元素就往后移了。 |
|
Int c.max_size() |
返回容器中可容纳多少个元素。不同类型的deque,可容纳数量不同。 |
|
Void c.pop_back() |
删除最后一个数据。 |
|
Void c.pop_front() |
删除头部数据。 |
|
Void c.push_back(元素类型 elem) |
在尾部加入一个数据。 |
|
Void c.push_front(元素类型 elem) |
在头部插入一个数据。 |
|
It c.rbegin() |
传回一个逆向队列的第一个数据的地址。使用这两个可以逆向输出。 |
|
It c.rend() |
传回一个逆向队列的最后一个数据的下一个位置的地址。 |
|
Void c.resize(int num,可选的默认值) |
重新指定队列的元素数量为num个。2种情况:1.若num比存在的元素个数要少,则删除尾部的元素以调整个数。2.若num比实际存在的元素要多,则在实际元素之后填充默认值以调整个数。(第2个元素为可选,若没有则默认为该类型的默认值) |
|
Int c.size() |
返回容器中目前存放了多少个元素。(这个和max_size不同) |
|
Void c1.swap(deuqe c2) |
将c1和c2中的元素互换,c1和c2都是同一类型的deque。 |
|
deque<Elem> c |
创建一个空的deque。Elem可以为int、char等等很多种类型。 |
c++ STL deque容器成员函数的更多相关文章
- c++ STL stack容器成员函数
这是后进先出的栈,成员函数比较简单,因为只能操作栈顶的元素.不提供清除什么的函数. 函数 描述 bool s.empty() 栈是否为空(即size=0).若空,返回true,否则,false. vo ...
- c++ STL map容器成员函数
map容器用于查找,设置键值和元素值,输入键值,就能得到元素值.map对象中的元素时刻都是有序的,除非无序插入的.它是用平衡树创建的.查找很快. 函数 描述,注意有r的地方都是不能用it代替的. ma ...
- c++ STL list容器成员函数
list是一个双链表. 函数 描述 void l.assign (int n, const val) void l.assign (it first, it last) 将链表l初始化为n个相同的va ...
- STL Deque 容器
STL Deque 容器 Deque简介 deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双 端的,而vector是单端的. ...
- 浅谈C++ STL deque 容器
浅谈C++ STL deque 容器 本篇随笔简单介绍一下\(C++STL\)中\(deque\)容器的使用方法及常见使用技巧. deque容器的概念 \(deque\)的意义是:双端队列.队列是我们 ...
- C++STL(vector,map,set,list,bitset,deque)成员函数整理
补充: vector 删除指定元素: vec.erase(remove(vec.begin(), vec.end(), val), vec.end());remove()返回的是删 ...
- 2.4 C++STL deque容器详解
文章目录 2.4.1 引入 2.4.2 代码示例 2.4.3 代码运行结果 2.4.4 具体案例 总结 2.4.1 引入 deque容器类比vector容器来学习. deque为双向开口容器,见下图. ...
- STL容器 成员函数 时间复杂度表
Sequence containers Associative containers Headers <vector> <deque> <list> <s ...
- C++——STL之vector, list, deque容器对比与常用函数
STL 三种顺序容器的特性对比: vector 可变数组,内存空间是连续的,容量不会进行缩减.支持高效随机存取,即支持[]和at()操作.尾部插入删除效率高,其他位置插删效率较低: list 双向链表 ...
随机推荐
- iscsi使用教程(下)
动态创建目标 安装iscsi服务端 # yum install -y scsi-target-utils.x86_64 修改配置文件 # mkdir -p ~/volumes # sed -i '$ ...
- 【leetcode 106. 从中序与后序遍历序列构造二叉树】解题报告
前往 中序,后序遍历构造二叉树, 中序,前序遍历构造二叉树 TreeNode* build(vector<int>& inorder, int l1, int r1, vector ...
- MySQL中的正则表达式
正则表达式是用正则表达式语言来建立 基本字符的匹配 .是正则表达式语言中的一个特殊的字符,它表示匹配任意一个字符 在LIKE和REGEXP之间有一个重要的差别,LIKE匹配整个列,如果被匹配的文本仅在 ...
- Spring MVC那点事儿
自问自答 1 Spring MVC的启动原理? spring mvc是基于ioc容器的,因此需要先创建IOC容器,才能创建对应的spring mvc执行环境. IOC容器是通过ContextLoade ...
- SSM框架的集成
一 : SpringMVC 接收参数 基本数据类型+String JavaBean 一对一 一对多 Map List 注解 @RequestMapping("/user/add") ...
- LCA 【bzoj1787】[Ahoi2008]Meet 紧急集合
LCA [bzoj1787][Ahoi2008]Meet 紧急集合 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1787 注意到边权为一 ...
- Java Script 第二章.
对象: JavaScript中的所有事物都是对象:字符串,数组,数值,函数..... JavaScript中提供多个内建对象,比如说 String, Date, Array等等.对象只是带有属性和 ...
- iOS开发之swift与OC混编出现的坑,oc中不能对swift的代理进行调用,不能访问swift中的代理,swift中的回调方法
1. Swift与oc混编译具体怎么实现,这儿我就不重复讲出了,网上有大把的人讲解. 2. 在swift与OC混编的编译环境下, oc类不能访问swift创建类中的代理? 解决方法如下: 在代理的头部 ...
- php微信公众号开发简单记录
开发前准备:1.服务器 2.微信公众号测试号(有真实的账号更好) 测试号申请地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/lo ...
- 牛客假日团队赛1 J.分组
链接: https://ac.nowcoder.com/acm/contest/918/J 题意: 在Farmer John最喜欢的节日里,他想要给他的朋友们赠送一些礼物.由于他并不擅长包装礼物,他想 ...