当前位置:   article > 正文

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

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.运算符

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

2.取值

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

六、相关函数

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

七、使用

  • 使用时,必须指定大小
  1. array<int, 3> a{1,2,3};
  2. array<int, 3> b = { 1,2,3 };
  • 初始化之后,不能再进行赋值
  1. array<int, 3> a{1,2,3};
  2. a={4,5,6};//错误
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/843784
推荐阅读
相关标签
  

闽ICP备14008679号