Compruebe si el mapa en C ++ contiene todas las claves de otro mapa

Estoy planeando usar dos mapas en C ++, de tipo:std::map<char, Node>, dóndeNode Es una clase personalizada. Supongamos que tengo dos mapas,m1 ym2 del tipo anterior, quiero saber sim1 contienetodos llaves presentes enm2. En otras palabras, quiero verificar que la intersección del conjunto de claves dem1 ym2 es el mismo que el conjunto de teclas dem2.

Podría recorrer todas las teclas enm2 y hacer unfind() ocount() enm1, pero eso parecería un desperdicio y probablemente sería lento. Digo esto porque las claves se almacenan como un árbol de búsqueda binario en orden ordenado en unastd::map, y así cada búsqueda / cuenta tomará O (logn), y para la siguiente clave enm2, el mismo camino en las teclas dem1 Habrá que recorrerlo desde el principio.

Soy nuevo en STL, así que, por favor, perdona mi ignorancia sobre lo que parece algo que debería hacerse fácilmente. Además, algunos ejemplos simples de fragmentos de código o enlaces a fragmentos de código serán muy útiles para comprender mejor. No puedo usar bibliotecas no estándar, incluido el impulso.

¡Gracias por adelantado!

Respuestas a la pregunta(1)

Su respuesta a la pregunta