[英]google::dense_hash_map vs std::tr1::unordered_map?
我正在为多个平台开发一款手机游戏(Android、iOS,有些甚至可能在未来出现某种控制台)。
我正在尝试决定是使用tr1::unordered_map还是google::dense_hash_map从资源管理器中检索纹理(以便以后使用 OpenGL 进行绑定)。 通常这种情况每秒会发生很多次(每帧 N 次,我的游戏以 ~60 fps 运行)
考虑因素是:
欢迎任何想法或建议。
go 与 STL 用于标准容器。 它们具有可预测的行为,并且可以在 STL 算法/迭代器中无缝使用。 STL 还为您提供了一些性能保证。
这也应该保证可移植性。 大多数编译器都实现了新标准。
在我开发的 C++ 项目中,我想知道类似的东西:哪个最好, tr1:unordered_map
, boost::unordered_map
或std::map
? 我最终声明了一个typedef
,在编译时可控:
#ifdef UnorderedMapBoost
typedef boost::unordered_map<cell_key, Cell> cell_map;
#else
#ifdef UnorderedMapTR1
typedef std::tr1::unordered_map<cell_key, Cell> cell_map;
#else
typedef std::map<cell_key, Cell> cell_map;
#endif // #ifdef UnorderedMapTR1
#endif // #ifdef UnorderedMapBoost
然后我可以在编译时控制使用哪一个,并对其进行分析。 就我而言,可移植性最终变得更加重要,所以我通常使用std::map
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.