一个简单的问题,但答案对我来说并不明显:出于性能原因,从性能角度来看,我应该在以下场景中最好使用哪种地图类型(或者可能非地图类型?)容器:
我犹豫是否使用std::map,因为升序键顺序和频繁删除似乎意味着搜索树的不断重新平衡,对我来说这似乎是性能的浪费。
换句话说:如果我提前知道项目的键是什么,甚至知道插入时键的显示顺序,我是否可以提高性能?(不过我不知道项目总数。)
如果您确实使用了stl::map- 即使只是为了进行分析以与散列进行比较 - 您可以利用您的知识“使用升序键值插入项目”,通过stl::map向插入提供提示来大大提高插入操作的效率称呼:
iterator insert ( iterator position_hint, const value_type& x );
Run Code Online (Sandbox Code Playgroud)
...其中position_hint,例如,将是插入的上一个项目的迭代器。
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |