Проверьте, содержит ли карта в C ++ все ключи от другой карты

Я планирую использовать две карты в C ++, типа:std::map, гдеNode это пользовательский класс. Предположим, у меня есть две карты,m1 а такжеm2 типа выше, я хочу выяснить,m1 содержитвсе ключи присутствуют вm2, Другими словами, я хочу убедиться, что пересечение набора ключейm1 а такжеm2 такой же, как набор ключей.m2

Я мог бы перебрать все ключи вm2 и сделатьfind() или жеcount() наm1, но это кажется пустой тратой и, вероятно, будет медленным. Я говорю это потому, что ключи хранятся в виде двоичного дерева поиска в отсортированном порядке вstd::map, и поэтому каждый из find / count будет принимать O (logn), а для следующего ключаm2, тот же путь в ключахm1 придется проходить с самого начала.

Я новичок в STL, поэтому, пожалуйста, прости мое невежество в отношении того, что кажется легко выполнимым. Кроме того, некоторые простые примеры фрагментов кода или ссылки на фрагменты кода будут очень полезны для лучшего понимания. Я не могу использовать нестандартные библиотеки, в том числе boost.

Заранее спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос