Vector Helper
Blog
Github
Search…
Vector Helper
简介
构建
安装与卸载
清理
常见问题
学习使用 Vector Helper
快速创建与销毁 Vector 对象实例
尝试 Push & Remove 元素
尝试 Set & Get 元素
尝试 Reserve & Handover 元素
尝试 Push Multiple 和 Pop 元素
尝试获取 Size & Count 和 Capacity
尝试 Quick Enum 元素
Vector Helper API
Vector 对象实例生命周期
内部和大小计数器
元素存取与管理
元素预订与撤销
元素快速枚举器
内存管理
数据结构和枚举器
Powered By
GitBook
常见问题
本页将列出与 Vector Helper 相关的常见问题
Vector Helper 适用于那些平台?
跨平台,理论上支持可执行通用 C/C++ 代码的平台。目前已经过测试的系统平台有 Linux、Windows;已经过测试的 CPU 架构有 x86、amd64、arm、arm64。
Vector Helper 是否必须编译为库后才能使用?
不,根据场景不同,若您侧重于性能,请直接将源代码文件加入您的项目并一同参与构建,同时建议您打开编译器的优化选项,例如 GCC 建议打开 -O3/-O2、-funroll-all-loops、-flto、-fomit-frame-pointer 优化选项,并进行静态链接(-static)。
若您侧重于多进程实例见的内存占用,建议您构建动态库后与您的项目进行动态链接。
若您侧重于易用性,建议您构建静态库后与您的项目进行动态或静态链接。
Vector Helper 整体性能表现如何?
根据您的使用方式不同而异,理论上若您直接将 Vector Helper 的源代码加入您的项目并参与构建,开启编译器适用的优化选项,采用静态链接方式,性能表现优于
std::vector<T>
模板类,但不是绝对的。
由于 Vector Helper 侧重于运行时安全与完整性,性能相对于前者是次要的。当然,您可以手动调整这一点。
Vector Helper 的内存分配器运行规则是什么?
当 Vector 对象实例的可用空闲内存空间不足时,内存分配器将对已分配的内存空间进行 1 倍 + 本次所需内存大小的扩容。当元素被移除时,其元素所占用的内存不会被主动回收,这是为了减少之后内存分配器的运行次数,从而提升应用程序执行性能。
若需要释放可用的空闲内存空间,可以调用内存管理函数
vector_helper_free_available_memory
手动强制回收空闲内存空间。
为什么 Vector 对象实例的初始可容纳元素个数必须大于 0?
因为当您尝试创建一个 Vector 对象实例时,内存分配器需要分配不少于 1 byte 的内存空间,以便确保内存分配是成功的。同时,建议您合理设置初始可容纳元素个数,这有助于提升应用程序执行性能。
为什么不能直接访问 Vector 对象实例数据结构?
为了确保 Vector 对象实例的数据结构完整性,即使您可以轻松访问该数据结构。您应该调用 Vector Helper API 实现相关功能,否则会破坏运行时安全与完整性,导致不可预料的异常。
为什么不能直接通过元素指针访问和修改元素?
因为这样可能会破坏元素的完整性。为了确保运行时安全与完整性,您应该调用 Vector Helper API 实现相关功能,否则可能会导致不可预料的异常。
我的问题没有在“常见问题”页面中列出怎么办?
非常抱歉该页面没有帮助到您,您可以从下方选取一个解决方案然后继续:
前往 Vector Helper 项目位于 Github 的页面提交 issue(推荐)
将您的问题详细描述并邮件至
[email protected]
前往
https://www.xiaoyy.org/ideas.html
提交反馈
在收到您的问题后,我们会尽力为您解答与 Vector Helper 相关的问题。
Previous
清理
Next - 学习使用 Vector Helper
快速创建与销毁 Vector 对象实例
Last modified
3yr ago
Copy link
Outline
Vector Helper 适用于那些平台?
Vector Helper 是否必须编译为库后才能使用?
Vector Helper 整体性能表现如何?
Vector Helper 的内存分配器运行规则是什么?
为什么 Vector 对象实例的初始可容纳元素个数必须大于 0?
为什么不能直接访问 Vector 对象实例数据结构?
为什么不能直接通过元素指针访问和修改元素?
我的问题没有在“常见问题”页面中列出怎么办?