STL容器-----array数组

前言:

C++11中引入了array容器,array是序列容器的一种。array很类似于一般的数组,例如,array在栈上分配连续的内存来储存元素,并且array的大小是不可以改变的,这也就是说,可以修改array中元素的值,但不能向array中插入和删除元素

其次:array是原生数组的封装,它存放于栈上且大小固定,性能也与之相同。在原生数组的基础上,它添加了范围检查,以及其它的STL的相应特性,比如复制、交换、迭代器、查询大小。

初始化

Array数组没有构造函数,也没有私有或保护成员,这就意味着它不会自动初始化。如果不对其初始化而直接获取其中的值,读出来的是不确定的值。
所以我们在定义的时候就直接初始化,这样是最好的,或者用fill函数进行填充

#include <array>
using std::array;
 
int main()
{
	//采用列表初始化
    array<int, 5> arr1 = { 1, 2, 3, 4, 5 };         
    array<int, 5> arr2 = { 0 };          
    array<int,10> arr3;
    arr3.fill(0);   //可以用fill函数对其填充           
    return 0;
}
交换两个数组

array数组最有意思的就是两个具有相同类型且元素个数也一样的,可以直接交换两个数组。
如:

array<int, 5> arr1 = { 1, 2, 3, 4, 5 };
array<int, 5> arr2 = { 5, 4, 3, 2, 1 };
array<int, 5> arr3 = arr1;                  // arr3 包含:1 2 3 4 5
arr3 = arr2;                                // arr3 包含:5 4 3 2 1 

//还可以用swap函数进行交换
arr1.swap(arr2);
swap(arr1,arr2);
遍历

可以用operator[]和at()对元素随机访问,两者都带范围检查。也可以直接使用迭代器,或者范围for语句。

for(int i=0;i<n;++i){
	cout<<arr1[i]<<endl;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值