c++ - C++ 中的稀疏数组

标签 c++ c++11 data-structures dictionary

我需要一个类似 vector 的容器,带有整数索引,但省略了一些索引。那么在 C++ 中表示这种稀疏数组的常用方法是什么? 我的直觉是 std::map 主要用于此类目的。但是对于通常不添加新项目的容器来说,速度相当慢。你有什么建议?

UPD: 不是很“稀疏”。也许大约 5%。项目主要在初始化步骤期间添加(之后不常添加)。但是访问很频繁(如果不是很重要的话,显然我不会开始这个话题)。

最佳答案

是的, map 通常是正确的方法。

我建议使用 C++11 unordered_map(基于哈希表)来获得闪电般快速的查找:这几乎是您在没有连续递增键的情况下所能做的最好的事情。

关于c++ - C++ 中的稀疏数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21310680/

相关文章:

c++ - 进入 unique_ptr 容器

c++ - 使用 C++11 编写 Win32 应用程序

c++ - 解析嵌套的CSS结构

c++ - 我的文件输出到屏幕两次 C++?

c++ - 如何包含 draco_dec 库?

c++ - 在矩形上居中文本不起作用

c++ - 使 std::unique<T> 与 std::unique<const T, CustomDeleterType> 兼容

regex - 我们什么时候真正使用 Trie 树?

C++ KOALA 图形库 - 了解访问数据结构的语法

c++ - vector 空 Push_back 在 '{' 标记之前调用预期的主表达式