D-R*_*RAJ 16 c++ game-engine c++-standard-library
我浏览了虚幻引擎源代码,发现它们使用自己的容器类,例如内部动态数组。但是 C++ STL 提供了(几乎)所有必需的容器类。那么他们为什么要花时间再次开发相同的容器呢?对于开发人员来说,使用容器std::vector来编写他们的代码而不是试图弄清楚如何使用TArray引擎中的类来做事情不是更容易吗?
项目可能不使用 STL 容器的原因有几个:
项目中使用的容器是量身定制的,具有某些不同于 STL 版本的性能特征。
在设计自定义容器时,STL 容器甚至可能还不存在,因此对工作项目进行如此大的更改是不值得的。
虽然大多数开发人员习惯于 STL 容器,但特定项目的大多数贡献者实际上可能更习惯于自定义版本,以及它们应该如何使用,并且重新训练所有这些容器可能也不值得付出努力。
对于任何特定项目,上述部分或全部,甚至其他原因都可能导致决定使用自定义容器。
除了@cigien提到的原因之外 - 即使此类应用程序的开发人员不需要定制的容器,但几个标准库容器仍然非常慢,例如:
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |