设为首页 加入收藏

TOP

array(一)
2023-07-23 13:39:15 】 浏览:167
Tags:array

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;
}
// 法3:增强for循环
#include <iostream> #include <array> using namespace std; int n; int main() { cout<<"请输入n:"<<'\n'; cin>>n; array<int,10> arr = {}; for (int i = 0; i < n; i++) { cout<<"请输入:"; int x; cin>>x; arr.at(i)=x; } for (auto &x : arr) { x+=x/3+2*x; cout<<x<<' '; } return 0; } /* 输入&输出 */
// 请输入n: // 6 // 请输入:8 // 请输入:9 // 请输入:8 // 请输入:5 // 请输入:6 // 请输入:4 // 26 30 26 16 20 13 0 0 0 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 

 

10.front()和back()

front()获取首元素,即arr[0]

back()获取末元素

 

11. begin()和end()

分别获取首元素的迭代器、末元素的下一个位置的迭代器

 

12.综合运用

#include <iostream>
#include <array>
using namespace std;

int main() {
    // 创建一个存储 5 个 int 类型元素的数组 arr1,元素默认初始化为 0
    array<int, 5> arr1 = {};

    // 通过下标访问数组元素,并进行赋值
    arr1[0] = 1;
    arr1[1] = 2;
    arr1[2] = 3;
    arr1[3] = 4;
    arr1[4] = 5;

    // 用循环访问数组元素
    for (int i = 0; i < arr1.size(); i++) { // 输出:1 2 3 4 5
        cout << arr1[i] << ' ';
    }
    cout << endl;

    // 创建一个存储 4 个 double 类型元素的数组 arr2,元素默认初始化为 0.0
    array<double, 4> arr2 = {};

    // 通过快速 for 循环
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇c++ 程序通用多线程单例设计 c++ .. 下一篇汉诺塔

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目