本文记录array容器的相关操作。主要包括定义、初始化、随机访问和遍历。
涉及到的方法主要有size()
at()
get()
begin()
end()
等等。
array
Definition
-更好用、具备更多更高效方法的数组。
-需引入头文件array
,即添加#include<array>
语句
定义一个array序列
array<int ,5> values;
初始化
- 定义的时候初始化:
array<int ,5> varible{1,2,3,4,5};
- 定义之后初始化:
//第一种方法
for(size_t i = 0;i<values.size();i++)
values1.at(i) = i;
//第二种方法
int initvalue = 10;
for(auto& value : values){ //会改变values2的值
value = initvalue;//如果不加&,不会改变values2的值
initvalue++;
} //初始化values2为{10,11,12,13,14}
随机访问
- 像普通数组一样使用下标进行访问,如
values[0]
;
cout<<"values1[0]:"<<values[0]<<endl;
- 使用
at()
方法,values.at(1)
cout<<"values1[1]:"<<values.at(1)<<endl;
at()会进行越界检查,如果越界,会报错。
- 使用
get()
方法,get<2>(values)
cout<<"values1[2]:"<<get<2>(values)<<endl;
get()方法的参数必须在编译时确定,因此不能是循环变量。
遍历
- 普通数组的方法
for(int i =0;i<values.size();i++)
cout<<values[i]<<" "<<endl;
- 迭代器
for(auto i = values1.begin();i<values1.end();i++)
cout<<*i<<" ";
REFERENCE
完整代码
#include<iostream>
#include<array>
#include<iomanip>
using namespace std;
int main(){
// 一、定义数组
array<int,5> values1;
array<int,5> values2;
// 二、初始化数组
for(size_t i = 0;i<values1.size();i++)
values1.at(i) = i;
int initvalue = 10;
for(auto& value : values2){ //会改变values2的值
//如果不加&,不会改变values1的值
value = initvalue;
initvalue++;
} //初始化values2为{10,11,12,13,14}
// 三、访问数组元素
cout<<"values1[0]:"<<values1[0]<<endl;
cout<<"values1[1]:"<<values1.at(1)<<endl;
cout<<"values1[2]:"<<get<2>(values1)<<endl;
cout<<"values1 is:";
for(auto i = values1.begin();i<values1.end();i++)
cout<<*i<<" ";
cout<<endl<<"values2 is:";
for(auto i = values2.begin();i<values2.end();i++)
cout<<*i<<" ";
return 0;
}