Sprawdź, czy mapa w C ++ zawiera wszystkie klucze z innej mapy

Planuję użyć dwóch map w C ++, typu:std::map<char, Node>, gdzieNode to klasa niestandardowa. Załóżmy, że mam dwie mapym1 im2 tego typu chcę się dowiedzieć, czym1 zawierawszystko klucze obecne wm2. Innymi słowy, chcę sprawdzić, czy przecięcie zestawu kluczym1 im2 jest taki sam jak zestaw kluczym2.

Mogę przejrzeć wszystkie kluczem2 i zróbfind() lubcount() nam1, ale to wydawałoby się marnotrawstwem i prawdopodobnie byłoby powolne. Mówię to, ponieważ klucze są przechowywane jako drzewo wyszukiwania binarnego w posortowanym porządku wstd::map, a więc każdy z find / count zajmie O (logn), a dla następnego key wm2, ta sama ścieżka w kluczachm1 będzie musiał przejść od początku.

Jestem nowy w STL, więc proszę wybacz moją ignorancję na temat tego, co wydaje się być czymś, co powinno być łatwe do wykonania. Również kilka prostych przykładowych fragmentów kodu lub linków do fragmentów kodu będzie bardzo pomocne w lepszym zrozumieniu. Nie mogę korzystać z niestandardowych bibliotek, w tym z dodatków.

Z góry dziękuję!

questionAnswers(1)

yourAnswerToTheQuestion