尝试 Push Multiple 和 Pop 元素
本页将介绍如何对指定 Vector 对象实例进行元素的 Push Multiple & Pop 操作
什么是 Push Multiple?
Push Multiple 是 Push 的一种扩展特性,皆在提供 Push 的批量操作。
为什么需要 Push Multiple?
通常情况下,若我们需要向指定 Vector 对象实例 Push 多个元素时,可能会进行多次 Push 操作,也即多次调用 vector_helper_push_element
函数。这不仅会带来函数调用方面的性能开销,也会使函数 vector_helper_push_element 的多数内部代码逻辑多次无意义的重复执行,这无疑会降低应用程序的执行性能。
与此同时,若我们需要确保每一个元素被成功 Push 进指定 Vector 对象实例,还需要对每次调用 vector_helper_push_element 函数的返回值进行判断,从而可能导致垃圾代码的产生,也会进而影响应用程序的执行性能。
综合上述两点来看,若我们使用 Push Multiple 特性,问题则迎刃而解。因为 Push Multiple 特性采用一次性函数调用提交,因此不存在多次函数调用带来的性能开销。并且,Push Multiple 特性会确保本次操作的完整性,遵循单个元素 Push 失败则全部失败,因此也不会存在对每次调用 vector_helper_push_element
函数的返回值进行判断的代码逻辑所带来的垃圾代码与性能开销。
如何使用 Push Multiple?
假定我们有 10 个待 Push 的 int 元素,我们将其放置在 int 数组变量 element_values
中:
接下来,我们调用 vector_helper_push_multiple_element
函数将 int 数组变量 element_values
中的元素,一次性 Push 进 Vector 对象实例 vector_object
中。
现在,我们已将 int 数组变量 element_values
中的 10 个 int 元素成功 Push 进了 Vector 对象实例 vector_object
中。
您是否还记得 Reserve & Handover 特性?Push Multiple 特性中之所以可以确保本次操作的完整性,就是因为使用了 Reserve & Handover 特性。
在上面示例代码中,调用的 vector_helper_push_multiple_element
函数的详细介绍,您可以在 Vector Helper API 分类中“元素的存取与管理”页面找到:
什么是 Pop?
Pop 与 Push 是相反的,Push 是将一个或多个元素推入到指定 Vector 对象实例的尾部,而 Pop 则是从指定 Vector 对象实例的顶部弹出一个元素。而 Push & Pop 则实现了一个先进先出有序队列的基本操作。
Pop 是如何实现的?
实际上,Pop 是 Get 和 Remove 的组合实现,首先通过调用 vector_helper_get_element
函数获取第 0 个元素的值,再调用 vector_helper_remove_element
函数从第 0 个元素开始移除 1 个元素。
如何使用 Pop?
首先,我们向 Vector 对象实例 vector_object 中 Push 1 个元素,以便我们进行 Pop:
然后,我们通过调用 vector_helper_pop_element
函数从 Vector 对象实例的顶部弹出一个元素,然后打印输出被弹出元素的值:
现在,若函数 vector_helper_pop_element
成功,则我们会在 Shell 中看到如下输出:
一个高性能有序队列应尽量避免使用 Vector Helper 的 Push & Pop 来实现,因为 Pop 操作涉及到从指定 Vector 对象实例的顶部 Remove 元素,而从顶部进行 Remove 操作会要求重新运行内存分配器,从而影响应用程序的执行性能。
在上面示例代码中调用的 vector_helper_pop_element 函数的详细介绍,您可以在 Vector Helper API 分类中的“元素存取与管理”页面中找到:
Last updated