C++(标准库):13---STL容器之(序列式容器array)

一、序列式容器概述

二、特点

  • 总的来说:固定大小数组。支持快速随机访问。不能添加或删除元素。
  • 是C++11标准新增的类型,设计的目的是:与内置数组相比,array是一个更安全、更容易使用的数组类型
  • array对象的大小是固定的,因此不能进行删除、添加、以及改变容器大小等

三、头文件、using声明

  • 头文件:#include <array>
  • using声明:using std::array;

四、初始化

  • array<T,size>  v1; ==>v1是一个空的array(array已经分配了空间,但是没初始化,都是垃圾值)
  • array<T,size> v2(v1); ===>v2是v1的副本,拷贝构造(v1和v2在定义时,<>内必须是相同的大小)
  • array<T,size> v2=v1; ===>同上(注意,=运算符只能用于此处,单独拿出来用不行)
  • array<T,size> v1{a,b,c...}; ===>用元素a,b,c进行初始化
  • array<T,size> v1={a,b,c...}; ===>同上

五、相关操作

1.运算符

a1==a2;//判断a1和a2是否相等
a1!=a2;//判断a1和a2是否相等
>、>=、<、<= //以字典顺序进行比较

2.取值

  • 索引取值:a[0],a[1],a[2]....

六、相关函数

  • array功能有限,只支持部分函数,且部分函数功能与其他容器函数功能不一样
  • 因为array是固定大小,所以插入删除之类的函数都没有
a.empty();//判断是否为空,返回布尔值
a.size();//返回容器中的元素个数
a.max_size();//返回容器的容量
a.front();//得到头元素
a.back();//得到尾元素
a.at(int i);//得到下标i处的元素,若下标越界,会抛出异常
a.data();//获取指向第一个数据的指针
//a1与a2必须是相同的大小
a1.swap(a2);//将a1和a2进行交换。容器的成员函数版本
swap(a1,a2);//同上。系统函数版本

a.assign(t);//将容器内的元素全部变为t
a.fill(t);//将容器内的元素全部变为t

七、使用

  • 使用时,必须指定大小
array<int, 3> a{1,2,3};
array<int, 3> b = { 1,2,3 };
  • 初始化之后,不能再进行赋值
array<int, 3> a{1,2,3};
a={4,5,6};//错误
发布了1594 篇原创文章 · 获赞 1190 · 访问量 57万+

猜你喜欢

转载自blog.csdn.net/qq_41453285/article/details/105483103