std::array 定义于头文件
此容器是一个聚合类型,其语义等同于一个C风格的数组T[N]作为其唯一非静态数据成员的结构体,不同于C风格的数组,它不可以利用 指针直接存取数据即不能转化为T*,但是像其他容器一样,可以通过迭代器进行遍历。该结构体结合了 C 风格数组的性能、可访问性与容器的优点,比如可获取大小、支持赋值、随机访问迭代器等。当其长度为零时 array
( N == 0
)有特殊情况。此时, array.begin() == array.end() ,并拥有某个唯一值。在零长 array
上调用 front() 或 back() 是未定义的。
其成员类型有:
成员类型 | 定义 |
---|---|
value_type | T |
size_type | std::size_t |
difference_type | std::ptrdiff_t |
reference | value_type& |
const_reference | const value_type& |
pointer | value_type* |
const_pointer | const value_type* |
iterator | 遗留随机访问迭代器 (LegacyRandomAccessIterator) 兼常量表达式迭代器 (ConstexprIterator) (C++20 起)且为字面类型 (LiteralType) (C++17 起) |
const_iterator | 常随机访问迭代器兼常量表达式迭代器 (ConstexprIterator) (C++20 起)且为字面类型 (LiteralType) (C++17 起) |
reverse_iterator | std::reverse_iterator |
const_reverse_iterator | std::reverse_iterator |
member function有:
隐式定义的成员函数 | |
---|---|
(构造函数) (隐式声明) | 遵循聚合初始化的规则初始化 array (注意默认初始化可以导致非类的 T 的不确定值) (公开成员函数) |
(析构函数) (隐式声明) | 销毁 array 的每个元素 (公开成员函数) |
operator= (隐式声明) | 以来自另一 array 的每个元素重写 array 的对应元素 (公开成员函数) |
元素访问 | |
at | 访问指定的元素,同时进行越界检查 (公开成员函数) |
operator[] | 访问指定的元素 (公开成员函数) |
front | 访问第一个元素 (公开成员函数) |
back | 访问最后一个元素 (公开成员函数) |
data | 返回指向内存中数组第一个元素的指针 (公开成员函数) |
迭代器 | |
begin cbegin | 返回指向起始的迭代器 (公开成员函数) |
end cend | 返回指向末尾的迭代器 (公开成员函数) |
rbegin crbegin | 返回指向起始的逆向迭代器 (公开成员函数) |
rend crend | 返回指向末尾的逆向迭代器 (公开成员函数) |
容量 | |
empty | 检查容器是否为空 (公开成员函数) |
size | 返回容纳的元素数 (公开成员函数) |
max_size | 返回可容纳的最大元素数 (公开成员函数) |
操作 | |
fill | 以指定值填充容器 (公开成员函数) |
swap | 交换内容 (公开成员函数) |
示例代码如下:
1 |
|