Поиск в проектах с открытым исходным кодом (без повышения), я нашел STL-подобный контейнер bimap
Вот где реализует двунаправленную карту. И есть multimap
в стандартных библиотеках C ++.
Примечание: простое решение использует два multimap
с двунаправленным способом. Но это не очень хорошая производительность. Потому что для каждого insert
/remove
/find
операцию мы должны выполнить их дважды. Кроме того, он выделяет больше памяти.
Примечание II: boost.bimap
Хорошее предложение от HostileFork и KerrekSB, и я воспользуюсь им, если нет возможности. Но перед этим мне нужно найти библиотеку классов без поддержки и небольшого размера.
Boost.bimap позволяет настроить тип коллекции для обоих значений; оба могут быть неуникальными.
Зачем использовать случайный код «CodeProject», когда есть стимул для повышения?
http://www.boost.org/doc/libs/1_42_0/libs/bimap/doc/html/index.html
Boost-код пытается приблизиться к приемлемой методологии стандартной библиотеки, и существует процесс проверки, с помощью которого в конечном итоге все принимается. Может быть, в следующем стандарте, кто знает?