Мне нужно описать ассоциативный массив, в котором для поиска можно использовать ключ и значение.С функциями add, delete, getBy1st (поиск по ключу), getBy2nd (поиск по значению).Например, в C ++:
symmap<std::string, int> m;
m.insert(make_pair<std::string,int> ("hello", 1));
m.insert(make_pair<std::string,int> ("wow", 2));
...
m.getBy1st("hello"); // returns 1
m.getBy2nd(2);// returns "wow"
Он должен работать для O (log (n)) и хранить в std :: pair.Я не могу решить, что структура данных используется для хранения.Может быть, я могу использовать какой-то вариант rb-дерева для его хранения?