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