std::vector

来自cppreference.com
< cpp‎ | container
 
 
 
std::vector
成员函数
原文:
Member functions
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
vector::vector
vector::~vector
vector::operator=
vector::assign
vector::get_allocator
元素的访问
原文:
Element access
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
vector::at
vector::operator[]
vector::front
vector::back
vector::data(C++11)
迭代器
原文:
Iterators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
vector::begin
vector::cbegin

(C++11)
vector::end
vector::cend

(C++11)
vector::rbegin
vector::crbegin

(C++11)
vector::rend
vector::crend

(C++11)
容量
原文:
Capacity
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
vector::empty
vector::size
vector::max_size
vector::reserve
vector::capacity
vector::shrink_to_fit(C++11)
修饰符
原文:
Modifiers
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
vector::clear
vector::insert
vector::emplace(C++11)
vector::erase
vector::push_back
vector::emplace_back(C++11)
vector::pop_back
vector::resize
vector::swap
 
在头文件 <vector> 中定义
template<

    class T,
    class Allocator = std::allocator<T>

> class vector;

std::vector 是一种序列容器,是对大小可变数组封装。

数组中的元素是连续存储的,所以除了能够通过迭代器访问外,还可以通过常规的指针偏移量访问元素。换句话说,可以将指向 vector 元素的指针传入以指向数组元素的指针作为参数的函数。

vector 会在需要时自动调整所占内存的大小。与对应的静态数组相比,vector 所占的内存通常要更多,因为它还分配了额外的内存以应对将来可能的扩张。于是,vector 就不必在每次插入元素时都重新分配一次内存了,除非这块预留的内存用尽。已分配内存的总大小可以通过 capacity() 函数查询。所占的额外的内存可以通过调用 shrink_to_fit() 返还给系统。

从性能方面考虑,内存重分配操作的代价通常很大。如果事先知道元素个数,可以使用 reserve() 函数消除重新分配操作。

针对 vector 的各种常见操作的复杂度(效率)如下:

  • 随机访问 - 常数 O(1)
  • 在尾部增删元素 - 摊余(amortized)常数 O(1)}}
  • 增删元素 - 至 vector 尾部的线性距离 O(n)}}

std::vector 满足 ContainerAllocatorAwareContainerSequenceContainerReversibleContainer 的要求。

目录

[编辑] 特化

标准库为 bool 类型提供了特化版本的 std::vector,优化了空间利用率。

节省空间的动态bitset
(类模板) [edit]

[编辑] 成员类型

成员类型 定义
value_type T [edit]
allocator_type Allocator [edit]
size_type
无符号整数类型(通常是size_t
原文:
Unsigned integral type (usually size_t)
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
[edit]
difference_type 有符号整型(通常是ptrdiff_t) [edit]
reference Allocator::reference (至 C++11)
value_type& (C++11 起) [edit]
const_reference Allocator::const_reference (至 C++11)
const value_type& (C++11 起) [edit]
pointer Allocator::pointer (至 C++11)
std::allocator_traits<Allocator>::pointer (C++11 起) [edit]
const_pointer Allocator::const_pointer (至 C++11)
std::allocator_traits<Allocator>::const_pointer (C++11 起) [edit]
iterator RandomAccessIterator [edit]
const_iterator 随机访问常迭代器[edit]
reverse_iterator std::reverse_iterator<iterator> [edit]
const_reverse_iterator std::reverse_iterator<const_iterator> [edit]

[编辑] 成员函数

构建vector
原文:
constructs the vector
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
析构 vector
(公共成员函数) [edit]
将值分配到容器中
原文:
assigns values to the container
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
将值分配到容器中
原文:
assigns values to the container
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
返回的关联分配器
原文:
returns the associated allocator
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
元素访问
访问指定的元素,同时进行越界检查
(公共成员函数) [edit]
访问指定的元素
原文:
access specified element
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
访问第一个元素
(公共成员函数) [edit]
访问最后一个元素
(公共成员函数) [edit]
返回指向内存中数组第一个元素的指针
(公共成员函数) [edit]
迭代器
返回指向容器开始的迭代器
(公共成员函数) [edit]
返回指向容器尾端的迭代器
(公共成员函数) [edit]
返回一个指向容器最后一个元素的反向迭代器
(公共成员函数) [edit]
返回一个指向容器前端的反向迭代器
(公共成员函数) [edit]
容量
检查是否容器是空的
原文:
checks whether the container is empty
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
返回的元素数
原文:
returns the number of elements
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
返回可能容纳的最大元素数
(公共成员函数) [edit]
储备存储
原文:
reserves storage
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
返回的元素的数目,可以保持在当前分配的存储空间
原文:
returns the number of elements that can be held in currently allocated storage
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
(C++11)
通过释放未使用的内存减少了内存的使用情况
原文:
reduces memory usage by freeing unused memory
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
修饰符
原文:
Modifiers
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
清除其内容
原文:
clears the contents
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
插入元素
原文:
inserts elements
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
(C++11)
就地构造元素
(公共成员函数) [edit]
擦除元素
原文:
erases elements
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
将元素添加到末端
(公共成员函数) [edit]
(C++11)
在末端就地构造元素
(公共成员函数) [edit]
删除最后一个元素
原文:
removes the last element
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
改变容器中可存储元素的个数
(公共成员函数) [edit]
交换vector的内容
(公共成员函数) [edit]

[编辑] 非成员函数

根据字典顺序比较的vector中的值
原文:
lexicographically compares the values in the vector
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [edit]
特化std::swap算法
(函数模板) [edit]