本文记录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){
value = initvalue;
initvalue++;
}
随机访问
- 像普通数组一样使用下标进行访问,如
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
- STL array简介
- for(auto &value:values)遍历array元素
完整代码
#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){
value = initvalue;
initvalue++;
}
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;
}
|