元素存取与管理
本页将介绍与元素存取与管理相关的 Vector Helper API
vector_helper_push_element
向指定 Vector 对象实例的尾部 Push 一个元素
Syntax
Parameters
Return Value
类型:bool
描述:Push 元素成功返回 True
,反之返回 False
。
Remarks
您应该检查此函数的返回值来判断其元素是否 Push 成功,而不是假定一定成功。
当函数失败时,参数 push_element_index
指向的变量不会被修改。
若不需要接收 Push 元素的索引号,请将参数 push_element_index
设置为 NULL。
参数 element_value_size
的值(byte)应小于等于指定 Vector 对象实例的单个元素大小(byte),否则函数将失败。
该函数适用于向指定 Vector 对象实例 Push 单一元素,若需连续 Push 多个元素,请调用 vector_helper_push_multiple_element
函数以确保操作完整性。
vector_helper_push_multiple_element
向指定 Vector 对象实例的尾部 Push 多个元素,该函数相对于分多次调用 vector_helper_push_element
函数,性能更高。
该函数会确保本次操作的完整性,遵循单个元素 Push 失败则全部失败,因此您不必担心也无需处理在执行 Push Multiple 操作的过程中出现单个元素 Push 失败的情况。
Syntax
Parameters
Return Value
类型:bool
描述:若参数 multiple_element_value
指向的待 Push 元素数组中指定个数的元素均 Push 成功则返回 True
,反之返回 False
。
Remarks
若不需要接收 Push 的多个元素中首个元素的索引号,请将参数 push_start_element_index
设置为 NULL
。
参数 push_element_count
的值应小于等于参数 multiple_element_value
所指向的待 Push 元素数组中实际有效的元素个数,否则可能会导致内存访问异常。
参数 single_element_value_size
的值(byte)应小于等于指定 Vector 对象实例的单个元素大小(byte),否则函数将失败。
当参数 single_element_value_size
的值(byte)等于指定 Vector 对象实例的单个元素大小(byte)时,此函数将进行 Align Push 策略,这有助于提升 Push Multiple 操作的执行性能。一个设计良好的应用程序,应确保会使用 Align Push 策略,而不是 Split Push 策略。
vector_helper_pop_element
从指定 Vector 对象实例的顶端 Pop 一个元素
Syntax
Parameters
Return Value
类型:bool
描述:成功返回 True,失败返回 False。
Remarks
参数 element_value_size
的值(byte)应大于等于指定 Vector 对象实例单个元素的大小(byte),否则为确保元素完整性,因此元素值不会被截断,函数将失败。
当指定 Vector 对象实例顶端的元素 Pop 成功后,被 Pop 的元素将从指定 Vector 对象实例中移除。
vector_helper_set_element
设置指定 Vector 对象实例中指定元素的值
Syntax
Parameters
Return Value
类型:bool
描述:成功返回 True
,失败返回 False
Remarks
参数 element_index
的值应位于指定 Vector 对象实例中有效的元素索引号(从 0 开始,含 0 本身),否则函数将失败。
参数 element_value
的值从 Vector Helper 1.0.1 版本起,必须设置为指向待设置的有效元素值缓冲区,不能设置为 NULL
以填空指定元素。若要填空指定元素,应指向空的元素值缓冲区。
参数 element_value_size
的值(byte)必须小于等于指定 Vector 对象实例单个元素的大小(byte),否则为确保元素完整性,函数将失败。
一个设计良好的应用程序应确保元素值缓冲区大小等于指定 Vector 对象实例单个元素的大小(byte),而不是截断元素值。
vector_helper_get_element
从指定 Vector 对象实例中获取指定元素的值
Syntax
Parameters
Return Value
类型:size_t
描述:成功返回需要获取元素值的大小(byte),失败返回 0
Remarks
参数 element_index
的值应位于指定 Vector 对象实例中有效的元素索引号(从 0 开始,含 0 本身),否则函数将失败。
参数 element_value_size
的值(byte)必须大于等于指定 Vector 对象实例单个元素的大小(byte),否则为确保元素完整性,函数将失败。
该函数的返回值不可靠,为确保元素完整性,若获取成功则返回指定 Vector 对象实例单个元素的大小(byte)。
vector_helper_get_element_value(Unsafe)
从指定 Vector 对象实例中获取指定元素的值指针
除非必要,否则您不应该使用此函数。因为这是一个 Unsafe 函数,使用此函数时无法确保元素和缓冲区的完整性。您应该使用 vector_helper_get_element 函数来获取指定元素的值。
此函数很有可能在将来的 Vector Helper 版本中被弃用,因为它不符合运行时安全设计。
Syntax
Parameters
Return Value
类型:void*
描述:成功返回指定元素值的 void*
指针,失败返回 NULL。
Remarks
除非必要,您应该调用 vector_helper_get_element
函数获取指定元素的值,因为此函数无法确保指定 Vector 对象实例缓冲区及其元素的完整性。
此函数的返回值不可靠,为确保内存操作的成功,您应该检查此函数的返回值是否为 NULL
,而不是假定它绝对返回有效指针。
vector_helper_remove_element
从指定 Vector 对象实例中移除指定元素
Syntax
Parameters
Return Value
类型:size_t
描述:成功返回指定 Vector 对象实例中剩余元素个数,失败返回 0。
Remarks
参数 element_start_index
的值应位于指定 Vector 对象实例中有效的元素索引号(从 0 开始,含 0 本身),否则函数将失败。
参数 remove_count
的值应大于 0,因为您不能从参数 element_start_index
(含自身)向后移除 0 个元素。
若您不需要接收元素的移除结果,应将参数 remove_result
设置为 NULL
。
此函数的返回值不可靠,因为若指定 Vector 对象实例最后的一个元素被成功移除,则依旧返回 0,因为指定 Vector 对象实例中的确已无其他元素,因此您不能通过检查此函数的返回值是否为 0 来作为元素是否被成功移除的判断依据,应该使用参数 remove_result
接收移除结果。
此函数仅移除指定范围内的元素,并不会回收其占用的内存空间。若需要强制回收可用的空闲内存空间,请尝试调用 vector_helper_free_available_memory
函数。
vector_helper_remove_all_element
从指定 Vector 对象实例中快速移除所有元素
Syntax
Parameters
Return Value
类型:bool
描述:成功返回 True
,失败返回 False
Remarks
此函数仅尝试快速移除指定 Vector 对象实例中的所有元素,并不会回收其占用的内存空间。若需要强制回收可用的空闲内存空间,请尝试调用 vector_helper_free_available_memory
函数。
vector_helper_reset_all_element
快速重置指定 Vector 对象实例中所有元素值为空
Syntax
Parameters
Return Value
类型:bool
描述:成功返回 True
,失败返回 False
Remarks
此函数仅尝试快速重置指定 Vector 对象实例中所有元素的值为空,并不会移除这些元素,也不会回收其占用的内存空间。
vector_helper_get_last_element_index
获取指定 Vector 对象实例尾部最后一个元素的索引号
Syntax
Parameters
Return Value
类型:bool
描述:成功返回 True
,失败返回 False
。
vector_helper_is_valid_element_index
验证指定 Vector 对象实例中指定元素索引号是否有效
Syntax
Parameters
Return Value
类型:bool
描述:被验证的元素索引号有效则返回 True
,反之返回 False
。
vector_helper_is_empty
验证指定 Vector 对象实例是否为空
Syntax
Parameters
Return Value
类型:bool
描述:若指定 Vector 对象实例为空,则返回 True
,反之返回 False
。
Remarks
此函数适用于验证指定 Vector 对象实例中是否包含有效元素,也即元素个数大于 0,并非用于验证指定 Vector 对象是否有效。
Last updated