JSON 值的动态大小数组。
定义于头文件 <boost/json/array.hpp>
class array;
名称 |
描述 |
---|---|
关联的 分配器 |
|
元素的随机访问常量迭代器。 |
|
指向元素的常量指针。 |
|
元素的常量引用。 |
|
元素的反向随机访问常量迭代器。 |
|
用于表示有符号整数的类型。 |
|
元素的随机访问迭代器。 |
|
指向元素的指针。 |
|
元素的引用。 |
|
元素的反向随机访问迭代器。 |
|
用于表示无符号整数的类型。 |
|
每个元素的类型。 |
名称 |
描述 |
---|---|
array [构造函数] |
构造函数。 |
访问元素,带边界检查。 |
|
访问最后一个元素。 |
|
返回指向第一个元素的迭代器。 |
|
返回当前分配内存中可以容纳的元素数量。 |
|
返回指向第一个元素的常量迭代器。 |
|
返回指向最后一个元素之后元素的常量迭代器。 |
|
清除内容。 |
|
返回指向反向容器的第一个元素的常量反向迭代器。 |
|
返回指向反向容器的最后一个元素之后元素的常量反向迭代器。 |
|
直接访问底层数组。 |
|
就地插入构造的元素。 |
|
就地追加构造的元素。 |
|
检查数组是否没有元素。 |
|
返回指向最后一个元素之后元素的迭代器。 |
|
从容器中擦除元素。 |
|
访问第一个元素。 |
|
返回关联的分配器。 |
|
返回指向元素的指针,如果索引无效则返回 nullptr。 |
|
在指定位置之前插入元素。 |
|
复制赋值。 |
|
访问元素。 |
|
移除最后一个元素。 |
|
在末尾添加一个元素。 |
|
返回指向反向容器的第一个元素的反向迭代器。 |
|
返回指向反向容器的最后一个元素之后元素的反向迭代器。 |
|
将容量增加到至少某个数量。 |
|
更改存储的元素数量。 |
|
请求移除未使用的容量。 |
|
返回数组中元素的数量。 |
|
返回关联的内存资源。 |
|
交换内容。 |
|
访问元素,带边界检查。 |
|
~array [析构函数] |
析构函数。 |
名称 |
描述 |
---|---|
返回任何数组可以容纳的最大元素数量。 |
名称 |
描述 |
---|---|
如果两个数组不相等,则返回 |
|
将 |
|
如果两个数组相等,则返回 |
|
交换给定的值。 |
这是用于将 JSON 数组表示为可修改容器的类型。 接口和性能特性模仿 std::vector<value>
。
元素是连续存储的,这意味着不仅可以通过迭代器访问它们,还可以使用相对于元素常规指针的偏移量来访问。 array
的元素的指针可以传递给任何期望指向 value
的指针的函数。
数组的存储是自动处理的,根据需要扩展和收缩。 数组通常比数组语言构造占用更多空间,因为分配了更多内存来处理未来的增长。 这样,数组不需要在每次插入元素时都重新分配,而仅在用完额外的内存时才需要重新分配。 可以使用 capacity
函数查询已分配内存的总量。 可以通过调用 shrink_to_fit
来释放额外的内存。
就性能而言,重新分配通常是代价高昂的操作。 如果预先知道元素的数量,则可以使用 reserve
函数来消除重新分配。
数组上常见操作的复杂度(效率)如下
存储在容器中的所有元素及其子元素(如果有)都将使用用于构造容器的相同内存资源。
非 const 成员函数可能不会与其他任何成员函数并发调用。
ContiguousContainer, ReversibleContainer, 和 SequenceContainer。
便捷头文件 <boost/json.hpp>