array

一、特性

概述:固定大小数组,支持快速随机访问,不能添加/删除元素,是C++11标准新增的类型

1. array对象的大小是固定的

  • array不支持添加/删除元素
  • array不支持改变容器大小的操作(如resize()、reverse()等)

2. array具有固定大小

  • 与内置数组一样,array的大小也是类型的一部分(故不支持普通容器的构造函数),故定义array对象时,要指出容器大小。
  • 与其他容器不同,一个默认构造的array对象是非空的(因为定义对象时已经给出了array对象的大小)
  • 要对array对象进行列表初始化,那么列表中元素的数目要小于等于该对象的大小(和内置数组一样)

3. 优于内置数组的地方

  • 可以在赋值时使用列表初始化(内置数组不支持)
  • 可以在array对象之间进行赋值操作(内置数组不支持)

二、不支持的容器操作

操作 说明
array c(b, e) 构造 c,将迭代器 b 和 e 指定的范围内的元素拷贝到 c
c = {a, b, c ... } 将 c 中的元素替换为列表中的元素(亲测可用)

array c(n)

array c(n, t)

第一个是创建一个大小为n的容器,且内容是值初始化;第二个是创建一个大小为n的容器,且内容是t

c.assign(args)

改变容器大小
c.push_back(args) 改变容器大小
c.emplace_back(args) 改变容器大小
c.insert(args) 改变容器大小
c.pop_back() 改变容器大小
c.pop_front() 改变容器大小
c.erase(args) 改变容器大小
c.clear() 改变容器大小
c.resize(args) 改变容器大小

三、限定条件的操作

操作 说明

array c1(c2)

array c1 = c2

c1初始化为c2的拷贝,要求c1和c2具有相同大小

array c{a, b, c ... }

array c={a, b, c ...}

c 初始化为初始化列表中元素的拷贝,要求列表中元素的数目不能大于 c 的大小
原文地址:https://www.cnblogs.com/xzxl/p/7702365.html