私はそのようなカスタムキーを持っていますstd::map
:
struct Foo
{
Foo(int _uid, int _priority) : unique_id(_uid), priority(_priority) {}
bool operator<(const Foo& other) const {
return priority < other.priority;
}
int unique_id;
int priority;
};
私はこのコードでマップを作成しています:
std::map <Foo, int> bla;
そして、これは私がアイテムを挿入する方法です:
bla.insert(std::pair<Foo, int> (Foo(1,2), 3) )
これは正常に機能し、並べ替えも機能します。しかし、私の問題は、どうすれば だけでアイテムを見つけることができるかということunique_id
です。find
関数には が必要でFoo
、これには が必要priority
ですが、クエリを実行するときに持っていません。
優先度を(キーとしてではなく)値に保存したいのですが、その場合、値でソートする方法がわかりません。そのstd::map
ための適切なクラス/テンプレートはありますか?
編集:ブーストを使用する機能がありません。優先順位も一意ではありません。