C++容器 array

C++11引入了std::array容器,它是一个固定大小的模板类,提供了便利且安全的数组操作。array的长度是固定的,存储在栈上,效率等同于普通数组。虽然交换两个array是线性操作,效率较低,但可以视为元组对象,方便使用。文章涵盖了array的模板参数、成员类型、成员函数及其示例。
摘要由CSDN通过智能技术生成

C++容器 array

C++ 11 中将数组抽象成了一个模板类array

array 位于名称空间 std 中,与数组一样, array 的长度是固定的,也使用栈(静态内存分配),而不是自由存储区,因此其效率与数组相同,但更方便,更安全。

零大小的数组是有效的,不应取消引用(成员 front() , back() 和 data() )。

与标准库中的其他容器不同,交换两个数组容器是一种线性操作,涉及单独交换范围内的所有元素,这通常效率较低。另一方面,这允许迭代器访问两个容器中的元素,以保持其原始容器关联。

数组容器的另一个独特功能是可以将它们视为元组对象。

模板参数(Template parameters)

template <class _Ty, size_t _Size>// _Ty是所含元素的类型,_Size是数组的大小,以元素数表示。

成员类型(Member types)

using value_type      = _Ty;
using size_type       = size_t;
using difference_type = ptrdiff_t;
using pointer         = _Ty*;
using const_pointer   = const _Ty*;
using reference       = _Ty&;
using const_reference = const _Ty&;

using iterator               = _Array_iterator<_Ty, _Size>;
using const_iterator         = _Array_const_iterator<_Ty, _Size>;
using reverse_iterator       = _STD reverse_iterator<iterator>;
using const_reverse_iterator = _STD reverse_iterator<const_iterator>;

成员函数(Member functions)

函数名 函数功能
begin 返回第一个元素的 iterator
end 返回最后一个元素的下一个元素的 iterator
rbegin 返回反向迭代器反向开始的 iterator
rend 返回反向迭代器返回到反向端点的 iterator
cbegin 返回第一个元素的 const_iterator
cend 返回最后一个元素的下一个元素的 const_iterator
crbegin 返回反向迭代器反向开始的 const_iterator
crend 返回反向迭代器返回到反向端点的 const_iterator
size 返回大小
max_size 返回最大大小
empty 测试数组是否为空
operator[] 访问元素
at 访问元素
front 访问第一个元素
back 访问最后一个元素
data 获取指向数据的指针
fill 用值填充数组
swap 交换内容
get 获取元素(元组接口)
示例:
#include <array>
#include <iostream>
using namespace std;
const int SIZE = 100;
int main() {
   
	//初始化,第一个参数填数据类型,第二个参数填数据个数
	array<int, 0> a;
	array<int, SIZE> b;
	//初始化并赋值
	array<int, SIZE> c{
    1,2,3 };
	//赋值
	for (int i = 0; i < SIZE; i++) {
   
		b[i] = rand();
	}
	//输出前10个
	for (int i = 0; i < 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值