Say есть карта: typedef map<int, string> MyMap;
Как пройти карту по значению
Я хотел бы, чтобы пересечь его в строке, например:
3 -> a
1 -> b
7 -> b
2 -> c
Один из способов сортировать эту карту по его значение. Но я боюсь, что это повлияет на эффективность find() (это правда?)
Другой выбор - использовать boost::bimap
. Но, как вы могли заметить, значение в MyMap не уникально, поэтому бимап здесь не применим.
Есть ли хороший способ сделать это?
Если вы не хотите сортировать траверс, вы можете сделать его неупорядоченным, как 'typedef boost :: bimap, unordered_multiset_of > MyMap;' Это сделает поиск намного быстрее –
balki