我正在寻找一个像 std::multimap 一样工作的 STL 容器,但对随机第 n 个元素具有恒定的访问时间。我需要这个,因为我在内存中有这样的结构,即 std::multimap 出于多种原因,但存储在其中的项目必须在列表框中呈现给用户。由于数据量很大,我正在使用带有虚拟项目的列表框(即列表控件轮询第 X 行的值)。
作为一种解决方法,我目前正在使用额外的 std::vector 将“索引”存储到 std::map 中,我这样填充它:
std::vector<MMap::data_type&> vec;
for (MMap::iterator it = mmap.begin(); it != mmap.end(); ++it)
vec.push_back((*it).second);
但这不是很优雅的解决方案。
有这样的容器吗?