我对于是否拥有一个multimap <int key, int value>
或维护一个包含包含与int键对应的所有值的向量的向量感到困惑。
我感兴趣的是在查找某个int键的值时,哪种方法执行起来更快。
[如果您想要multimap
而不仅仅是map
,则替代方案可能是vector< list<int> >
或类似的东西(multimap
通常被实现为允许多个等效键的RB树, 有点
忘记哪个“更快”。您可以稍后对其进行概要分析,但是不要着迷。更重要的是,一种方法可以为您提供稀疏的存储,而另一种则不能—专注于此并确定哪种方法最适合您的问题。
我会说,如果您的键是顺序排列的,则与向量一起使用,但是如果您的键中有大孔,则地图会更好(因为您不必像向量中那样存储“空”记录),再加上这样可以更轻松地计算您拥有的记录数等。性能明智的矢量基于数组,因此查找通常更快(因为映射必须经过几段数据才能进行查找)。
我建议O(1)
我想您正在做过早的优化。这不是很好,因为只有在使用分析器进行所有操作之后才应该进行优化。不要浪费时间,而是使用专门的容器来满足您的需求。