数组array

23 篇文章 0 订阅

概念

array 容器是 C++ 11 标准中新增的序列容器,简单地理解,它就是在 C++ 普通数组的基础上,添加了一些成员函数和全局函数。在使用上,它比普通数组更安全

array 容器的大小是固定的,无法动态的扩展或收缩,只允许访问或者替换存储的元素

注意:array的使用要在std命名空间里

初始化array对象

array<T,n> a;//声明一个大小为n的T型数组

array<T,n> a{};//在上一条的基础上将每一位都置为0

array<T,n> a{1,2,3};//声明一个大小为n的T型数组,初始化部分值,其余全部为0

array<T,n> a = {1,2,3};与上一条同理

array的遍历方式:1.数组下标。2.迭代器(逆向迭代器)。3.at函数。4.get方法

#include <iostream>

#include <array>



using namespace std;

int main()

{

    array<int, 4> a = { 1, 2, 3, 4 };

   

// 数组下标方式遍历vector

for (int i = 0; i < a.size(); i++)

{

//cout << get<i>(a);//错误

cout << a[i] << " ";

}



cout << endl;



// 迭代器方式遍历vector

array<int, 4>::iterator itor = a.begin();

for (; itor != a.end(); itor++)

cout << *itor << " ";

cout << endl;



//set()方式

for (int i = 0; i < a.size(); i++)

cout << a.at(i) << " ";

cout << endl;



//get()方法

cout << get<0>(a) << " " << get<1>(a) << " " << get<2>(a) << " " << get<3>(a) << " ";

return 0;



}

注意:get中填写的数字是下标值,并且只能写数字,不能填变量

常用函数

array1.begin():返回容器中第一个元素的访问迭代器(地址)

array1.end():返回容器最后一个元素之后一个位置的访问迭代器(地址)

array1.rbegin():返回最后一个元素的访问迭代器(地址)

array1.rend():返回第一个元素之前一个位置的访问迭代器(地址)

array1.size():返回容器中元素的数量,其值等于初始化 array 类的第二个模板参数N

array1.max_size():返回容器可容纳元素的最大数量,其值始终等于初始化 array 类的第二个模板参数 N

array1.empty():判断容器是否为空 at(n) 返回容器中 n 位置处元素的引用,函数会自动检查 n 是否在有效的范围内,如果不是则抛出 out_of_range 异常

array1.front():返回容器中第一个元素的直接引用,函数不适用于空的 array 容器

array1.back():返回容器中最后一个元素的直接引用,函数不适用于空的 array 容器。

array1.data():返回一个指向容器首个元素的指针。利用该指针,可实现复制容器中所有元素等类似功能

array1.fill(x):将 x 这个值赋值给容器中的每个元素,相当于初始化

array1.swap(array2):交换 array1 和 array2 容器中的所有元素,但前提是它们具有相同的长度和类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值