C ++库 - <deque>

简介

Deque是 D ouble E nded Que ue的首字母缩写.它是一个序列容器,可以改变它的大小运行时. Container是一个保存相同类型数据的对象.序列容器严格按线性顺序存储元素.

deque的元素可以分散在不同的内存块中.容器存储必要的信息,以允许在恒定时间内直接访问任何元素.与向量不同,deque不能保证将所有元素存储在连续的内存位置.因此,它不允许通过偏移指针直接访问数据.但它允许使用下标operator []直接访问任何元素.

Deque可以在运行时根据需要从两端收缩或扩展.存储要求由内部分配器自动完成. Deque提供与向量类似的功能,但提供了从任何一端插入和删除数据的有效方法.

零大小的deques也是有效的.在这种情况下,deque.begin()和deque.end()指向同一位置.但调用front()或back()的行为是未定义的.

定义

以下是来自< deque>的std :: deque的定义头文件

template < class T, class Alloc = allocator<T> > class deque;

参数

  • T : 包含的元素的类型.

    T可以被任何其他数据类型替换,包括用户定义的类型.

  • Alloc : 分配器对象的类型.

    默认情况下,使用allocator类模板,该模板定义了最简单的内存分配模型,并且与值无关.

成员类型

以下成员类型可用作参数或按成员函数返回类型.

Sr.No.成员类型定义
1value_typeT(模板的第一个参数)
2allocator_typeAlloc(模板的第二个参数)
3referencevalue_type&
4const_referenceconst value_type&
5pointervalue_type *
6const_pointerconst value_type *
7iterator随机访问iterator到value_type
8const_iterator随机访问迭代器到const value_type
9reverse_iteratorstd :: reverse_iterator< iterator>
10const_reverse_iteratorstd :: reverse_iterator< const_iterator>
11size_typesize_t
12difference_typeptrdiff_t

来自< deque>

的函数

下面是升来自< deque>的所有方法的ist标题.

构造函数

Sr.No.方法&说明
1deque::deque  默认构造函数

构造一个零元素的空双端队列.

2deque :: deque   fill constructor

n 构造一个新的双端队列元素并将 val 分配给deque的每个元素

3deque :: deque  范围构造函数

使用 first last 范围内的元素构造一个双端队列.

4deque :: deque  复制构造函数

构造一个带有现有容器中每个元素副本的双端队列.

5deque::deque   move constructor

使用move语义构造一个包含其他内容的双端队列.

6deque :: deque  初始化列表构造函数

从初始化列表构造一个双端队列.

析构函数

Sr.No.Method&说明
1deque::deque

通过释放内存来销毁deque对象.

成员函数

Sr.No.Method&说明
1deque::assign  范围版本

通过替换旧元素为deque元素分配新值.

2deque :: assign   fill version

通过替换旧元素为deque元素赋值.

3deque :: assign  初始化列表版本

通过替换旧元素为deque元素赋值.

4deque :: at

返回对当前元素的引用在deque的位置 n .

5deque :: back

返回对最后一个的引用deque的元素.

6deque :: begin

返回指向双端队列的第一个元素的随机访问迭代器.

7deque :: cbegin

返回一个指向双端队列开头的常量随机访问迭代器.

8deque :: cend

返回一个指向双端队列开头的常量随机访问迭代器.

9deque::clear

通过删除双端队列中的所有元素并将双端队列的大小设置为零来销毁双端队列.

10deque::crbegin

返回一个指向容器反转器开头的常量反向迭代器.

11deque :: crend

返回一个指向双端队列反向末端的常量反向迭代器.

12deque :: emplace

通过在位置插入新元素来扩展容器.

13deque :: emplace_back

在双端队列末尾插入新元素.

14deque :: emplace_front

在deque开头插入新元素.

15deque :: empty

测试deque是否为空.

16deque :: end

返回指向

17deque :: erase   position version

从双端队列中删除单个元素.

18deque :: erase  范围版本

从双端队列中删除单个元素.

19deque ::front

返回对双端队列的第一个元素的引用

20deque :: get_allocator

返回与deque关联的分配器

21deque :: insert   single elemen t version

通过在位置插入新元素来扩展容器.

22deque :: insert   fill version

通过在容器中插入新元素来扩展容器.

23deque :: insert  范围版本

通过在容器中插入新元素来扩展容器.

24deque :: insert  移动版本

通过在容器中插入新元素来扩展容器.

25deque :: insert  初始化列表版本

通过在容器中插入新元素来扩展容器.

26deque :: max_size

返回deque可以保留的最大元素数.

27deque :: operator =   copy version

通过替换旧的内容为deque分配新的内容,并在必要时修改大小.

28deque :: operator =  移动版本

通过替换旧的内容为转义分配新内容,并在必要时修改大小.

29deque :: operator =  初始化列表version

通过替换旧的内容为deque分配新的内容,并在必要时修改大小.

30deque :: operator []

返回对 n 位置处元素的引用.

31deque :: pop_back

从双端队列中删除最后一个元素,并将双端队列的大小减一.

32deque :: pop_front

从deque中删除第一个元素并减小deque b的大小y one.

33deque :: push_back

在双端队列末尾插入新元素,并将双端队列的大小增加一.

34deque :: push_back  移动版本

在双端队列末尾插入新元素并增加大小deque by one.

35deque :: push_front

在双端队列的前面插入新元素,并将双端队列的大小增加一.

36deque :: push_front  移动版本

插入新的e在deque前面释放并且将双端队列的大小增加一.

37deque :: rbegin

返回指向的反向迭代器到deque的最后一个元素.

38deque :: rend

返回反向迭代器,指向反向结尾deque.

39deque :: resize

更改双端队列的大小.

40deque :: resize   value version

更改deque的大小.

41deque :: shrink_to_fit

请求容器减少容量以适应其大小.

42deque :: size

返回元素数量deque.

43deque :: swap

将deque的内容与另一个deque的内容进行交换 x .

非会员超载功能

Sr.No.方法&说明
1operator==

测试两个deques是否相等.

2operator!=

测试两个deques是否相等.

3operator<

测试第一个deque是否小于其他deque.

4operator< =

测试第一个双端队列是否小于或等于其他与否.

5operator>

测试第一双端队列是否大于其他双端队列。

6operator> =

测试第一个deque是否大于或等于other.

7swap

交换两个双端队列的内容.