我是靠谱客的博主 怕孤单汽车,最近开发中收集的这篇文章主要介绍STL容器系列文章:array容器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 头文件

#include <array>

2. 定义

  • C11中引入,静态数组,序列式容器。array可以看做普通数组添加了成员函数,使得数组能够被当成标准容器来使用。容器的大小固定,无法动态扩展或收缩。定义一个array时,除了指定元素类型,还要指定容器大小
  • array以类模板的形式定义:
namespace std {
	template<typename T, size_t N>
	class array;
}

array<T, N>
// T: 用于指明数据类型
// N:表示容器大小,只能是常量不能是变量

3. 对象创建

方法说明
array<int, 3> arr = {1, 2, 3};定义类型为int,大小为3的数组并初始化为{1, 2, 3}
array<int, 10> arr = {1, 2, 3};前三个元素赋值,后7个元素为0
array<double, 10> arr = {1.5, 2.0, 1.0};double类型数组,前三个元素赋值,后7个元素为0.0
array<int, 3> arr = {0};所有元素初始化为0
array<int, 3> arr;未初始化,是垃圾值,不推荐
array<int, 3> arr = {};未初始化,比上一种方式好
array<int, 0> arr;合法定义,size为0,元素为某个未知的值
array<int, 3> arr({1, 2, 3});定义非法!没有定义这种类型的拷贝构造函数
  • 拷贝构造:
array<int, 3> arr1 = {1, 2, 3};		// 方式1
array<int, 3> arr2 = arr1;			// 方式2
array<int, 3> arr3(arr1);			// 方式3
  • 二维数组
array<array<int, 5>, 5> mat1 = {
   	1,2,3,4,5,
   	1,2,3,4,5,
   	1,2,3,4,5,
   	1,2,3,4,5,
   	1,2,3,4,5,
};

4. 常用方法

  • 大小
方法说明
arr.size()容器元素个数
arr.max_size()容器所能容纳的最大元素个数
arr.empty()判断容器是否为空
  • 访问
方法说明
array<int, 3> arr = {1, 2, 3}; arr[1]; 或 arr.at(1);[]或at()方式访问
arr.front(); arr.back();front()和back()不要为空时访问首尾元素
arr.data();获取第一个数据的指针,也就是数组首地址
  • 比较
/* 可以用> < ==来比较两个array数组 */
std::array<int,5> a = {10, 20, 30, 40, 50};
std::array<int,5> b = {10, 20, 30, 40, 50};
if (a == b) {
	std::cout << "a == b" << std::endl;
}
  • 迭代器
方法说明
begin()/end()正向迭代器
rbegin()/rend()反向迭代器
cbegin()/cend()const正向迭代器
crbegin()/crend()const反向迭代器
  • 交换swap:两个容器元素类型和个数相同
方法说明
arr1.swap(arr2);方式1
swap(arr1, arr2);方式2
  • 其他函数
    • fill函数:arr.fill(value); // 使用value值填充数组所有元素
std::array<int, 5> arr;
arr.fill(5);  // fill,5个元素值都为5
for (auto i : arr) {
	std::cout << i << " ";
}

参考文章:
array介绍
array定义和常用方法
推荐阅读

created by shuaixio, 2021.07.25

最后

以上就是怕孤单汽车为你收集整理的STL容器系列文章:array容器的全部内容,希望文章能够帮你解决STL容器系列文章:array容器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部