四川建设监理协会网站腾讯广告投放平台
Urho3D实现了自己的字符串类型和模板容器,而不是使用STL。其基本原理如下:
- 在某些情况下提高了性能,例如使用PODVector类时。
- 保证字符串和容器的二进制大小,以允许例如嵌入Variant对象内。
- 减少了编译时间。
- 直接命名和实现,有助于调试和分析。
- 可以添加方便的成员函数,例如 String::Split()或Vector::Compact().。
- 与其他类的一致性,请参见编码约定。
有问题的类是String、Vector、PODVector、List、HashSet和HashMap。PODVector仅在向量的元素不需要构造或破坏并且可以使用块内存副本移动时使用。
列表、集合和映射类在内部使用固定大小的分配器。应用程序也可以通过使用过程函数AllocatorInitialize()、AllocatorUninitialize(),AllocatorReserve()和AllocatorFree(),或通过模板类Allocator使用。
在脚本中,String类按原样公开。模板容器不能直接公开给脚本,而是存在一个模板Array类型,其行为类似于Vector,但不公开迭代器。此外,VariantMap是可用的,它是HashMap<StringHash,Variant>。
C++11功能
聚合初始值设定项:
VariantMap parameters = { {"Key1", "Value1"}, {"Key2", "Value2"} };
循环的范围基数:
for (auto&& item: container)
{
}