目录

C++ Library - <deque>

介绍 (Introduction)

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

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

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

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

定义 (Definition)

下面是头文件中std :: deque的定义

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

参数 (Parameters)

  • T - 包含的元素的类型。

    T可以由包括用户定义类型的任何其他数据类型代替。

  • Alloc - 分配器对象的类型。

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

成员类型 (Member types)

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

Sr.No. 会员类型 定义
1value_type T(模板的第一个参数)
2allocator_type Alloc(模板的第二个参数)
3referencevalue_type&
4const_reference const value_type&
5pointervalue_type*
6const_pointer const value_type *
7iterator 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

来自的函数

以下是标题中所有方法的列表。

构造函数 (Constructors)

Sr.No. 方法和描述
1 deque::deque 默认构造函数

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

2 deque::deque fill constructor

n个元素构造一个新的deque,并为deque的每个元素赋值

3 deque::deque range构造函数

构造一个具有从头到尾范围内的元素数量的双端队列。

4 deque::deque copy构造函数

构造一个双端队列,其中包含现有容器中存在的每个元素的副本。

5 deque::deque move构造函数

使用move语义构造一个带有其他内容的双端队列。

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

从初始化列表构造一个deque。

Destructor

Sr.No. 方法和描述
1 deque::~deque

通过释放它的内存来销毁deque对象。

成员函数 (Member functions)

Sr.No. 方法和描述
1 deque::assign 范围版本

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

2 deque::assign 填充版本

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

3 deque::assign initializer list version

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

4 deque::at

返回对deque中位置n处的元素的引用。

5 deque::back

返回对双端队列的最后一个元素的引用。

6 deque::begin

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

7 deque::cbegin

返回一个指向deque开头的常量随机访问迭代器。

8 deque::cend

返回一个指向deque开头的常量随机访问迭代器。

9 deque::clear

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

10 deque::crbegin

返回一个常量反向迭代器,它指向容器的反向器开头。

11 deque::crend

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

12 deque::emplace

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

13 deque::emplace_back

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

14 deque::emplace_front

在双端队列的开头插入新元素。

15 deque::empty

测试deque是否为空。

16 deque::end

返回一个迭代器,它指向deque容器中的past-the-end元素

17 deque::erase position version

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

18 deque::erase 范围版本

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

19 deque::front

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

20 deque::get_allocator

返回与deque关联的分配器

21 deque::insert 单个元素版本

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

22 deque::insert 填充版本

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

23 deque::insert 范围版本

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

24 deque::insert 移动版本

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

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

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

26 deque::max_size

返回deque可以保存的最大元素数。

27 deque::operator= copy version

通过替换旧的内容为双端队列分配新内容,并在必要时修改大小。

28 deque::operator= 移动版本

通过替换旧的内容为双端队列分配新内容,并在必要时修改大小。

29 deque::operator= 初始化列表版本

通过替换旧的内容为双端队列分配新内容,并在必要时修改大小。

30 deque::operator[]

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

31 deque::pop_back

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

32 deque::pop_front

从双端队列中移除第一个元素,并将双端队列的大小减小一个。

33 deque::push_back

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

34 deque::push_back 移动版本

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

35 deque::push_front

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

36 deque::push_front 移动版本

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

37 deque::rbegin

返回一个反向迭代器,它指向双端队列的最后一个元素。

38 deque::rend

返回一个反向迭代器,它指向双端队列的反向末尾。

39 deque::resize

改变双端队列的大小。

40 deque::resize value version

改变双端队列的大小。

41 deque::shrink_to_fit

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

42 deque::size

返回双端队列中存在的元素数。

43 deque::swap

用另一个deque x的内容交换双端队列的内容。

非成员重载函数 (Non-member overloaded functions)

Sr.No. 方法和描述
1 operator==

测试两个deques是否相等。

2 operator!=

测试两个deques是否相等。

3 operator<

测试第一个deque是否比其他deque少。

4 operator<=

测试第一个双端是否小于或等于其他。

5 operator>

测试第一个deque是否大于其他deque。

6 operator>=

测试第一个双端是否大于或等于其他。

7 swap

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

↑回到顶部↑
WIKI教程 @2018