简介

本页将介绍什么是 Vector Helper 与其相关特性

什么是 Vector Helper?

Vector Helper 是一个用 C 编写的 Vector Array(矢量数组)库,皆在为 C 项目提供侧重于运行时安全的高性能 Vector Array。若您使用过 C++ Std,您应该知道 <vector> 头文件中声明的std::vector<T> 模板类提供了 Vector Array,但 std::vector<T> 仅限于在 C++ 中使用。

为什么存在 Vector Helper?

Vector Helper 原先是 SmallSO Studios. 内部纯 C 项目中的子模块,皆在纯 C 中实现与 std::vector<T> 模板类大致相同的功能,而开源版本则是从其项目中分离并整理出来的独立版本。Vector Helper 遵循新的 API 规范,与 std::vector<T> 模板类不同。并且,Vector Helper 是侧重于运行时安全设计的,也即包含更多的 API 调用检查、出入参数合法验证等。在性能方面,与 std::vector<T> 模板类接近。

Vector Helper 与其他 Vector Array 有何不同?

整体上来看,主要有以下几点:

  • Vector Helper 侧重于运行时安全,但这不是绝对的。

  • Vector Helper 侧重于运行时完整性,但这不是绝对的。

  • Vector Helper 在确保运行时安全和完整性的同时,尽可能地提升性能。

  • Vector Helper 确保 C/C++ 可同时使用,为其提供预处理器兼容性支持。

  • Vector Helper 以跨主流平台的通用性 C 代码为主(理论上),但一部分平台是未经过验证的。

Vector Helper 目前由谁维护?

Vector Helper 项目由 SmallSO 创建并在 Github 以 MIT 许可证开放源代码。在没有明确声明之前,SmallSO 将保持对该项目的定期维护,也欢迎其他开发者加入该项目的开发与维护。若有任何问题或建议,欢迎前往 Github 提交 issue。

最后...

或许很多开发者对于 Vector Helper 侧重于运行时安全和完整性不太理解,认为开发者应该对 C 代码的执行结果负责,没必要因此而牺牲执行性能。的确,我们非常认同这一观点,但由于 Vector Helper 原先是 SmallSO Studios. 内部纯 C 项目的子模块,该内部项目运行在服务端,对容错有一定的要求。当然,这并不代表我们对这一内部项目的不信任,但作为服务端项目,我们依旧认为应具有一定的容错能力。上述内容中的“容错”是指针对开发者的,而非执行代码本身,皆在阻止与开发者预期不符的常规错误操作。

若您认为不需要运行时安全与完整性保护,您可以从 Vector Helper 中移除和运行时安全与完整性相关的代码。除非您对性能要求非常高,否则不建议您这么做。

最后,欢迎更多开发者参与 Vector Helper 项目的开发、优化与维护工作。

仍有疑问?建议您参阅 “常见问题” 页面或向我们反馈。