Boost C++ 库

...世界上最受推崇和设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

PrevUpHomeNext

array

JSON 值的动态大小数组。

概要

定义于头文件 <boost/json/array.hpp>

class array;
类型

名称

描述

allocator_type

关联的 分配器

const_iterator

元素的随机访问常量迭代器。

const_pointer

指向元素的常量指针。

const_reference

元素的常量引用。

const_reverse_iterator

元素的反向随机访问常量迭代器。

difference_type

用于表示有符号整数的类型。

iterator

元素的随机访问迭代器。

pointer

指向元素的指针。

reference

元素的引用。

reverse_iterator

元素的反向随机访问迭代器。

size_type

用于表示无符号整数的类型。

value_type

每个元素的类型。

成员函数

名称

描述

array [构造函数]

构造函数。

复制构造函数。

窃取构造函数。

移动构造函数。

at

访问元素,带边界检查。

back

访问最后一个元素。

begin

返回指向第一个元素的迭代器。

返回指向第一个元素的常量迭代器。

capacity

返回当前分配内存中可以容纳的元素数量。

cbegin

返回指向第一个元素的常量迭代器。

cend

返回指向最后一个元素之后元素的常量迭代器。

clear

清除内容。

crbegin

返回指向反向容器的第一个元素的常量反向迭代器。

crend

返回指向反向容器的最后一个元素之后元素的常量反向迭代器。

data

直接访问底层数组。

emplace

就地插入构造的元素。

emplace_back

就地追加构造的元素。

empty

检查数组是否没有元素。

end

返回指向最后一个元素之后元素的迭代器。

返回指向最后一个元素之后元素的常量迭代器。

erase

从容器中擦除元素。

front

访问第一个元素。

get_allocator

返回关联的分配器。

if_contains

返回指向元素的指针,如果索引无效则返回 nullptr。

insert

在指定位置之前插入元素。

operator=

复制赋值。

移动赋值。

赋值。

operator[]

访问元素。

pop_back

移除最后一个元素。

push_back

在末尾添加一个元素。

rbegin

返回指向反向容器的第一个元素的反向迭代器。

返回指向反向容器的第一个元素的常量反向迭代器。

rend

返回指向反向容器的最后一个元素之后元素的反向迭代器。

返回指向反向容器的最后一个元素之后元素的常量反向迭代器。

reserve

将容量增加到至少某个数量。

resize

更改存储的元素数量。

shrink_to_fit

请求移除未使用的容量。

size

返回数组中元素的数量。

storage

返回关联的内存资源。

swap

交换内容。

try_at

访问元素,带边界检查。

~array [析构函数]

析构函数。

静态成员函数

名称

描述

max_size

返回任何数组可以容纳的最大元素数量。

友元

名称

描述

operator!=

如果两个数组不相等,则返回 true

operator<<

array 序列化到输出流。

operator==

如果两个数组相等,则返回 true

swap

交换给定的值。

描述

这是用于将 JSON 数组表示为可修改容器的类型。 接口和性能特性模仿 std::vector<value>

元素是连续存储的,这意味着不仅可以通过迭代器访问它们,还可以使用相对于元素常规指针的偏移量来访问。 array 的元素的指针可以传递给任何期望指向 value 的指针的函数。

数组的存储是自动处理的,根据需要扩展和收缩。 数组通常比数组语言构造占用更多空间,因为分配了更多内存来处理未来的增长。 这样,数组不需要在每次插入元素时都重新分配,而仅在用完额外的内存时才需要重新分配。 可以使用 capacity 函数查询已分配内存的总量。 可以通过调用 shrink_to_fit 来释放额外的内存。

就性能而言,重新分配通常是代价高昂的操作。 如果预先知道元素的数量,则可以使用 reserve 函数来消除重新分配。

数组上常见操作的复杂度(效率)如下

分配器

存储在容器中的所有元素及其子元素(如果有)都将使用用于构造容器的相同内存资源。

线程安全

非 const 成员函数可能不会与其他任何成员函数并发调用。

满足

ContiguousContainer, ReversibleContainer, 和 SequenceContainer

便捷头文件 <boost/json.hpp>


PrevUpHomeNext