向量或多图困境

问题描述 投票:0回答:5

我对于是否拥有一个multimap <int key, int value>或维护一个包含包含与int键对应的所有值的向量的向量感到困惑。

我感兴趣的是在查找某个int键的值时,哪种方法执行起来更快。

c++ stl
5个回答
4
投票

[如果您想要multimap而不仅仅是map,则替代方案可能是vector< list<int> >或类似的东西(multimap通常被实现为允许多个等效键的RB树, 有点


4
投票

忘记哪个“更快”。您可以稍后对其进行概要分析,但是不要着迷。更重要的是,一种方法可以为您提供稀疏的存储,而另一种则不能—专注于此并确定哪种方法最适合您的问题。


2
投票

我会说,如果您的键是顺序排列的,则与向量一起使用,但是如果您的键中有大孔,则地图会更好(因为您不必像向量中那样存储“空”记录),再加上这样可以更轻松地计算您拥有的记录数等。性能明智的矢量基于数组,因此查找通常更快(因为映射必须经过几段数据才能进行查找)。


1
投票

我建议O(1)


1
投票

我想您正在做过早的优化。这不是很好,因为只有在使用分析器进行所有操作之后才应该进行优化。不要浪费时间,而是使用专门的容器来满足您的需求。

© www.soinside.com 2019 - 2024. All rights reserved.