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

时间:2011-07-04 17:59:09

标签: iphone c++ ios

我正在为多个平台开发移动游戏(Android,iOS,有些甚至可能在将来使用某种控制台)。

我正在尝试决定是使用tr1::unordered_map还是google::dense_hash_map从资源管理器中检索纹理(以便以后使用OpenGL进行绑定)。通常这可能每秒发生几次(每帧N,我的游戏运行速度约为60 fps)

注意事项是:

  • 性能(内存和CPU明智)
  • 可移植性

欢迎任何想法或建议。

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

使用标准容器的STL。它们具有可预测的行为,可以在STL算法/迭代器中无缝使用。您还可以通过STL获得一些性能保证。

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

答案 2 :(得分:0)

在我开发的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

相关问题