繁体   English   中英

google::dense_hash_map vs std::tr1::unordered_map?

[英]google::dense_hash_map vs std::tr1::unordered_map?

我正在为多个平台开发一款手机游戏(Android、iOS,有些甚至可能在未来出现某种控制台)。

我正在尝试决定是使用tr1::unordered_map还是google::dense_hash_map从资源管理器中检索纹理(以便以后使用 OpenGL 进行绑定)。 通常这种情况每秒会发生很多次(每帧 N 次,我的游戏以 ~60 fps 运行)

考虑因素是:

  • 性能(内存和 CPU 方面)
  • 可移植性

欢迎任何想法或建议。

go 与 STL 用于标准容器。 它们具有可预测的行为,并且可以在 STL 算法/迭代器中无缝使用。 STL 还为您提供了一些性能保证。

这也应该保证可移植性。 大多数编译器都实现了新标准。

在我开发的 C++ 项目中,我想知道类似的东西:哪个最好, tr1:unordered_mapboost::unordered_mapstd::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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM