我需要一个类似 vector 的容器,带有整数索引,但省略了一些索引。那么在 C++ 中表示这种稀疏数组的常用方法是什么? 我的直觉是 std::map 主要用于此类目的。但是对于通常不添加新项目的容器来说,速度相当慢。你有什么建议?
UPD: 不是很“稀疏”。也许大约 5%。项目主要在初始化步骤期间添加(之后不常添加)。但是访问很频繁(如果不是很重要的话,显然我不会开始这个话题)。
最佳答案
是的, map 通常是正确的方法。
我建议使用 C++11 unordered_map
(基于哈希表)来获得闪电般快速的查找:这几乎是您在没有连续递增键的情况下所能做的最好的事情。
关于c++ - C++ 中的稀疏数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21310680/