int からオブジェクトへの双方向マッピングを作成する必要があります。boost::bimap
オブジェクトがマッピングに配置された後に変更されている (マッピングに影響しない方法で変更されている) ため、 を使用できません。
簡単な解決策は、 avector
と an の2 つを使用することunordered_map
です。
vector<MyClass> _vector;
unordered_map<MyClass, size_t> _map;
ただし、これにより、各 の 2 つのコピーが保持さMyClass
れます。これは望ましくありません。
MyClass *
コンテナーの 1 つにポインターを保持し、もう 1 つのコンテナーのストレージを使用することはできますが、インスタンスを移動するか (ベクトルを再割り当てするか、ハッシュ テーブルのサイズを変更する場合) できるのではないvector
かと心配しています。unordered_map
どんな助けでも大歓迎です。