目录

C++ Library - <vector>

介绍 (Introduction)

向量是可以改变大小的序列容器。 容器是保存相同类型数据的对象。 序列容器严格按线性顺序存储元素。

Vector将元素存储在连续的内存位置,并允许使用下标operator []直接访问任何元素。 与数组不同,vector可以在运行时根据需要缩小或扩展。 矢量的存储是自动处理的。

为了在运行时支持收缩和扩展功能,向量容器可以分配一些额外的存储空间以适应可能的增长,因此容器的实际容量大于大小。 因此,与数组相比,vector可以消耗更多内存,以换取管理存储和以高效方式动态增长的能力。

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

定义 (Definition)

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

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

参数 (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 vector::vector 默认构造函数

构造一个空元素,零元素。

2 vector::vector 填充构造函数

构造一个具有n个元素的容器,并为每个元素赋予val

3 vector::vector 范围构造函数

构造一个容器,其中包含从头到尾范围内的任意数量的元素

4 vector::vector 复制构造函数

构造一个容器,其中包含现有容器x中存在的每个元素的副本

5 vector::vector 移动构造函数

使用move语义构造具有其他内容的容器。

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

从初始化列表构造容器。

Destructor

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

通过释放容器内存来销毁容器。

成员函数 (Member functions)

Sr.No. 方法和描述
1 vector::assign fill version

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

2 vector::assign 范围版本

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

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

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

4 vector::at

返回对向量中位置n处出现的元素的引用。

5 vector::back

返回对向量的最后一个元素的引用。

6 vector::begin

返回指向向量的第一个元素的随机访问迭代器。

7 vector::capacity

返回分配存储的大小,以元素表示。

8 vector::cbegin

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

9 vector::cend

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

10 vector::clear

通过从向量中移除所有元素并将向量的大小设置为零来销毁向量。

11 vector::crbegin

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

12 vector::crend

返回一个指向向量反向末端的常量反向迭代器。

13 vector::data

返回指向矢量容器的第一个元素的指针。

14 vector::emplace

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

15 vector::emplace_back

在向量的末尾插入新元素。

16 vector::empty

测试向量是否为空。

17 vector::end

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

18 vector::erase 位置版本

从向量中删除单个元素。

19 vector::erase 范围版本

从向量中删除单个元素。

20 vector::front

返回对向量的第一个元素的引用。

21 vector::get_allocator

返回与vector关联的分配器。

22 vector::insert 单个元素版本

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

23 vector::insert 填充版本

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

24 vector::insert 范围版本

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

25 vector::insert 移动版本

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

26 vector::insert 初始化列表版本

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

27 vector::max_size

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

28 vector::operator= 复制版

通过替换旧的内容将新内容分配给矢量,并在必要时修改大小。

29 vector::operator= 移动版本

通过替换旧的内容将新内容分配给矢量,并在必要时修改大小。

30 vector :: operator = 初始化列表版本

通过替换旧的内容将新内容分配给矢量,并在必要时修改大小。

31 vector::operator[]

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

32 vector::pop_back

从向量中移除最后一个元素,并将向量的大小减小一个。

33 vector::push_back

在向量的末尾插入新元素,并将向量的大小增加1。

34 vector::rbegin

返回一个反向迭代器,它指向向量的最后一个元素。

35 vector::rend

返回一个反向迭代器,它指向向量的反向末尾。

36 vector::reserve

保留向量容量的请求至少足以包含n个元素。

37 vector::resize

改变矢量的大小。

38 vector::shrink_to_fit

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

39 vector::size

返回向量中存在的元素数。

40 vector::swap

用向量x的内容交换向量的内容。

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

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

测试两个向量是否相等。

2 operator!=

测试两个向量是否相等。

3 运算符<

测试第一个向量是否小于其他向量。

4 operator <=

测试第一个向量是否小于或等于其他向量。

5 运算符>

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

6 operator> =

测试第一个向量是否大于或等于其他向量。

7 swap

交换两个向量的内容。

↑回到顶部↑
WIKI教程 @2018