私はそのようなカスタムキーを持っています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ための適切なクラス/テンプレートはありますか?
編集:ブーストを使用する機能がありません。優先順位も一意ではありません。