Есть ли хороший способ поиска по ключу и значению? - PullRequest
4 голосов
/ 03 октября 2010

В настоящее время я использую map<int, int> в C ++. Я могу без проблем проверить наличие ключа, но есть ли эффективный способ получить ключи, которые также имеют определенное значение? Моя цель - захватить все элементы с заданным значением и затем обновить их значение.

Ответы [ 2 ]

8 голосов
/ 03 октября 2010

Вас может заинтересовать Boost.Bimap .

0 голосов
/ 15 ноября 2018

Теперь это легко с c ++ 11 и выше.

Попробуйте ниже образец.

//DECLARE A MAP
std::map<int, int> testmap;

//SAMPLE DATA
testmap.insert(std::make_pair(1, 10));
testmap.insert(std::make_pair(2, 20));
testmap.insert(std::make_pair(3, 30));
testmap.insert(std::make_pair(4, 20));

//ELEMENTS WITH VALUE TO BE FOUND
int value = 20;

//RESULTS
std::map<int,int> keysMatching;

//ONE STEP TO FIND ALL MATCHING MAP ELEMENTS
std::copy_if(testmap.begin(), testmap.end(), std::inserter(keysMatching, keysMatching.end()), [value](const auto& v) {return v.second == value; });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...