我需要创建一个从整数到对象的双向映射。我不能使用,boost::bimap
因为我的对象在放入映射后被修改(它们正在以不影响映射的方式进行修改)。
简单的解决方案是两个使用 avector
和 an unordered_map
:
vector<MyClass> _vector;
unordered_map<MyClass, size_t> _map;
但是,这会维护每个 的两个副本MyClass
,我不希望这样。
我可以将MyClass *
指针保存在其中一个容器中,并使用另一个容器的存储,但我担心vector
或者unordered_map
可以移动实例(在重新分配向量或调整哈希表大小时)。
任何帮助,将不胜感激。