c++ - 为什么像虚幻引擎这样的大项目要自己写容器类?

标签 c++ game-engine c++-standard-library

我浏览了虚幻引擎的源代码,发现他们使用自己的容器类,例如内部动态数组。但是 C++ STL 提供了(几乎)所有必需的容器类。那么他们为什么要花时间再次开发相同的容器呢?开发者使用std::vector这样的容器不是更方便吗?编写他们的代码而不是试图弄清楚如何使用 TArray 做事引擎中的类?

最佳答案

项目可能不使用 STL 容器的原因有几个:

  • 项目中使用的容器是量身定制的,具有某些不同于 STL 版本的性能特征。
  • 在设计自定义容器时,STL 容器甚至可能还不存在,因此对工作项目进行如此大的更改是不值得的。
  • 虽然大多数开发人员习惯于 STL 容器,但大多数特定项目的贡献者实际上可能更习惯于自定义版本,以及它们应该如何使用,并且重新训练所有这些容器可能也不值得付出努力。

  • 对于任何特定项目,上述部分或全部,甚至其他原因都可能导致决定使用自定义容器。

    关于c++ - 为什么像虚幻引擎这样的大项目要自己写容器类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64158032/

    相关文章:

    c++ - 使用 Android NDK 构建 mariadb 客户端

    javascript - 移相器 : add physics to graphic objects

    c++ - 如何将 c++ std::map 与关联数据的自定义比较函数进行比较?

    c++ - 无法在 map 的 map 的 STL map 中插入数据

    c++ - 具有方法概括 make_shared 和 make_unique 的复合指针特征类?

    c++ - 'l' 位在文件权限中 ( ---x--l--- )O/P

    c++ - 我的迭代器没有按照预期的方式工作

    2d - 你应该如何在 Vulkan 中更新每帧的纹理?

    java - worldToScreen() - 它是如何工作的?

    C++ 命名空间声明和定义