繁体   English   中英

在C ++中进行关联和迭代

[英]Associating and iterating in C++

我遇到了要使用关联容器的情况,我选择使用std :: unordered_map,因为可以使用该容器容纳数百万或更多的元素是完全可行的。 但是现在我也需要按顺序进行迭代。 我考虑过让值类型在列表中相互链接,但是现在我将在内存管理方面遇到问题。

我应该更改容器,对std :: map说吗? 或者只是通过unordered_map迭代一次,插入向量中,然后排序,然后进行迭代? 我不太可能需要以有序方式反复进行迭代。

您可以使用Boost.MultiIndex ,在同一基础对象集合上指定无序(哈希)索引和有序索引。

可能存在的问题-现有关联容器模型没有自然映射,如果您一直不需要第二个索引,则可能会过大。

好吧,您知道您选择的两个替代方案的各种运算的O()。 您应该基于此进行选择,并根据需要在何处发生性能以及哪个容器最适合THAT进行成本/收益分析。

当然,我可能不太了解如何为您进行分析。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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