Buscar por valor en un Mapa en C++

Dado un conjunto de N pares como pares (clave, valor) en un mapa y un número entero K , la tarea es encontrar todas las claves asignadas al valor dado K . Si no hay un valor clave asignado a K , imprima «-1» . Ejemplos:
 

Entrada: Mapa[] = { {1, 3}, {2, 3}, {4, -1}, {7, 2}, {10, 3} }, K = 3 
Salida: 1 2 10 
Explicación: 
El 3 valores clave que se asignan al valor 3 son 1, 2, 10.
Entrada: Map[] = { {1, 3}, {2, 3}, {4, -1}, {7, 2}, {10 , 3} }, K = 10 
Salida: -1 
Explicación: 
No hay ningún valor clave que esté asignado al valor 10. 

Enfoque: la idea es atravesar el mapa dado e imprimir todos los valores clave que se asignan al valor K dado . A continuación se muestra el ciclo utilizado para encontrar todos los valores clave: 

for(auto &it : Mapa) { 
if(it.segundo == K) { 
print(it.primero) 


 

Si no hay un valor asignado con K , imprima «-1» .
A continuación se muestra la implementación del enfoque anterior:

CPP

// C++ program for the above approach
#include "bits/stdc++.h"
using namespace std;
 
// Function to find the key values
// according to given mapped value K
void printKey(map<int, int>& Map,
              int K)
{
 
    // If a is true, then we have
    // not key-value mapped to K
    bool a = true;
 
    // Traverse the map
    for (auto& it : Map) {
 
        // If mapped value is K,
        // then print the key value
        if (it.second == K) {
            cout << it.first << ' ';
            a = false;
        }
    }
 
    // If there is not key mapped with K,
    // then print -1
    if (a) {
        cout << "-1";
    }
}
 
// Driver Code
int main()
{
    map<int, int> Map;
 
    // Given map
    Map[1] = 3;
    Map[2] = 3;
    Map[4] = -1;
    Map[7] = 2;
    Map[10] = 3;
 
    // Given value K
    int K = 3;
 
    // Function call
    printKey(Map, K);
    return 0;
}
Producción: 

1 2 10

 

Complejidad de tiempo: O(N) , donde N es el número de pares almacenados en el mapa. Esto se debe a que estamos atravesando todos los pares una vez.
Espacio Auxiliar: O(N)

Publicación traducida automáticamente

Artículo escrito por kothariji y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *