此篇随笔将示范array容器的基本操作

1.介绍

array容器在C++普通数组的基础上,添加了一些函数。在使用上,它比普通数组更安全。

2.头文件及命名空间

1 #include<array>
2 using namespace std;

3.举例

array<double,10> arr;//声明一个装有10个double型元素的数组容器,容器名为arr

4.初始化

1 //array容器不会像普通数组那样进行默认初始化
2 array<int,10> arr01 {};//全部初始化为0
3 array<int,10> arr02 {1,2,3};//前三个元素初始化为1,2,3, 其他元素初始化为0
//上述初始化可以加等号,但是务必注意必须显性初始化,异于普通数组的默认初始化

5.遍历

//法1 数组名[下标]
#include<iostream>
#include<array>
using namespace std;
int main(){
array<int,10> arr {1,3,5,7,9,2,4,6,8,10};
for (size_t i = 0; i < arr.size(); i++)
{
cout<<arr[i]<<' ';
}
return 0;
}
//法2 迭代器
#include<iostream>
#include<array>
using namespace std;
int main(){
array<int,10> arr {1,3,5,7,9,2,4,6,8,10};
// for (array<int,10>::iterator it = arr.begin(); it != arr.end(); it++)
// {
// cout<<*it<<' ';
// }
for (auto it = arr.begin(); it != arr.end(); it++)
{
cout<<*it<<' ';
}
return 0;
}

6.快速求和:accumulate()函数

使用accumulate()函数实现数组快速求和

#include<iostream>
#include<array>
#include<numeric>//accumulate函数
using namespace std;
array<int,10> arr {1,3,5,7,9,2,4,6,8,10};
int main(){
cout<<accumulate(arr.begin(),arr.end(),0);//第三个参数相当于int sum = 0 的初始值0
return 0;
}
//输出:55
//若把第三个参数改为3,那么输出将会是58(55+3=58).

7.size()函数

//获取容器内元素的个数
#include<iostream>
#include<array>
using namespace std;
array<int,10> arr={1,3,5,7,9,2,4,6,8,10};
int main(){
cout<<"arr内元素个数为:"<<arr.size()<<endl;
return 0;
}
//输出:arr内元素个数为:10

8.empty()函数

//若容器为空则返回真
#include<iostream>
#include<array>
using namespace std;
array<int,0> arr;//第二个参数为0,容器为空
int main(){
if (arr.empty())
{
cout<<"arr is empty"<<endl;
} return 0;
}
//输出:arr is empty

9.fill()函数

//给所有元素初始化为特定值
#include<iostream>
#include<array>
using namespace std;
array<int,5> arr;
int main(){
arr.fill(-1);
for (size_t i = 0; i < arr.size(); i++)
{
cout<<arr[i]<<" ";
}
return 0;
}
//输出:-1 -1 -1 -1 -1

最新文章

  1. Python高级特性学习笔记
  2. javscript闭包的准备工作 -- 作用域与作用域链
  3. WebApi 服务监控
  4. Mantis 缺陷管理系统配置与安装
  5. RepositoryItemComboBox 用法1
  6. GridView分页操作
  7. 我的Python成长之路---第六天---Python基础(20)---2016年2月20日(晴)
  8. 【数据库摘要】4_Sql_Like
  9. ArcSDE SDK For Java二次开发介绍、演示样例
  10. 软测试综述——PV操作
  11. C#.net干货,最全公共帮助类
  12. 记录下在阿里云linux上安装与配置Mysql
  13. 利用正则表达式实现python强口令检测
  14. AJAX随笔2
  15. Mongodb常用增删改查语法
  16. U-Boot shell脚本语法
  17. nginx安装升级及配置详解
  18. java元注解 @Target注解用法
  19. HDU 2048 神、上帝以及老天爷 【递推】【错排】
  20. c#文件比较Code

热门文章

  1. 深入理解计算机系统(CSAPP)bomblab实验进阶之nuclearlab——详细题解
  2. Angular ngx-translate中英文切换
  3. HttpClient 提交 JSON数据
  4. Ubuntu更换国内apt-get源
  5. More exceptional c++读书笔记【附高清PDF下载】
  6. Java面向对象之抽象类abstract
  7. Oracle查看用户占用的表空间大小
  8. Qt 3D示例——cube
  9. git基础代码获取
  10. taro 学习笔记