PackedInt64Array¶
64位整数的打包数组。
描述¶
专门设计用于保存64位整数值的数组。紧密打包数据,因此可以为大数组大小节省内存。
注意:此类型存储有符号的64位整数,这意味着它可以在间隔[-2^63,2^63-1]中取值,即[-9223372036854775808,9223372036854775807]。超过这些边界将环绕。如果您只需要紧密打包32位整数,请参阅PackedInt32Array以获得更适合内存的替代方案。
打包数组、类型化数组和非类型化数组之间的区别:与相同类型的类型化数组相比,打包数组通常迭代和修改速度更快(例如**PackedInt64Array与Array[int])。此外,打包数组消耗的内存更少。缺点是打包数组不太灵活,因为它们没有提供那么多方便的方法,如Array.map()。类型化数组反过来又比非类型化数组迭代和修改速度更快。
注意:打包数组总是通过引用传递的。要获得可以独立于原始数组进行修改的数组的副本,请使用duplicate()。内置属性和方法的情况是而不是。这些返回的打包数组是副本,更改它将而不是影响原始值。要更新内置属性,您需要修改返回的数组,然后再次将其分配给属性。
构造函数¶
方法¶
void |
append_array(array: PackedInt64Array) |
void |
clear() |
void |
|
is_empty() const |
|
void |
|
void |
reverse() |
void |
|
size() const |
|
void |
sort() |
to_byte_array() const |
运算符¶
operator !=(right: PackedInt64Array) |
|
operator +(right: PackedInt64Array) |
|
operator ==(right: PackedInt64Array) |
|
operator [](index: int) |
构造函数说明¶
PackedInt64Array PackedInt64Array() 🔗
构造一个空的PackedInt64Array。
PackedInt64Array PackedInt64Array(from: PackedInt64Array)
构造一个PackedInt64Array作为给定PackedInt64Array的副本。
PackedInt64Array PackedInt64Array(from: Array)
构造一个新的PackedInt64Array。或者,您可以传入将被转换的通用Array。
方法说明¶
在数组的末尾附加一个元素(push_back()的别名)。
void append_array(array: PackedInt64Array) 🔗
在此数组的末尾附加一个PackedInt64Array。
int bsearch(value: int, before: bool = true) 🔗
使用二进制搜索查找现有值的索引(或保持排序顺序的插入索引,如果该值尚未出现在数组中)。可选地,可以传递before说明符。如果false,则返回的索引位于数组中该值的所有现有条目之后。
注意:在未排序的数组上调用bsearch()会导致意外行为。
void clear() 🔗
清除数组。这相当于使用大小为0的resize()。
返回元素在数组中的次数。
PackedInt64Array duplicate() 🔗
创建数组的副本,并返回它。
将给定值分配给数组中的所有元素。这通常可以与resize()一起使用,以创建具有给定大小和初始化元素的数组。
int find(value: int, from: int = 0) const 🔗
在数组中搜索一个值,如果未找到,则返回其索引或-1。可选地,可以传递初始搜索索引。
返回数组中给定index处的64位整数。这与使用[]运算符(array[index])相同。
如果数组包含value,则返回true。
int insert(at_index: int, value: int) 🔗
在数组中的给定位置插入一个新整数。该位置必须有效,或者在数组的末尾(idx==size())。
如果数组为空,则返回true。
将值附加到数组。
按索引从数组中删除元素。
设置数组的大小。如果数组增长,则在数组末尾保留元素。如果数组缩小,则将数组截断为新大小。调用resize()一次并分配新值比逐个添加新元素更快。
void reverse() 🔗
反转数组中元素的顺序。
int rfind(value: int, from: int = -1) const 🔗
以相反的顺序搜索数组。或者,可以传递开始搜索索引。如果为负,则认为开始索引相对于数组的末尾。
void set(index: int, value: int) 🔗
更改给定索引处的整数。
返回数组中元素的数量。
PackedInt64Array slice(begin: int, end: int = 2147483647) const 🔗
返回PackedInt64Array的切片,从begin(包括)到end(不包括),作为新的PackedInt64Array。
begin和end的绝对值将被钳制到数组大小,因此end的默认值使其默认切片到数组的大小(即arr.片段(1)是arr.片段(1, arr.size())的简写)。
如果begin或end为负数,它们将相对于数组的末尾(即arr.片段(0,-2)是arr.片段(0, arr.size()-2)的简写)。
void sort() 🔗
按升序对数组的元素进行排序。
PackedByteArray to_byte_array() const 🔗
返回转换为PackedByteArray的数据副本,其中每个元素都被编码为8个字节。
新数组的大小为int64_array. size()*8。
运算符说明¶
bool operator !=(right: PackedInt64Array) 🔗
如果数组的内容不同,则返回true。
PackedInt64Array operator +(right: PackedInt64Array) 🔗
返回一个新的PackedInt64Array,在此数组末尾添加了right的内容。为了获得更好的性能,请考虑改用append_array()。
bool operator ==(right: PackedInt64Array) 🔗
如果两个数组的内容相同,即它们在相应索引处的整数都相等,则返回true。
返回indexindex处的int。负索引可用于访问从末尾开始的元素。在数组边界之外使用索引将导致错误。