Búsqueda de mapas C ++

Búsqueda de mapas C ++
"El contenedor asociado conocido como mapa permite el almacenamiento de elementos en C ++ que resultan de la interacción de un par de valores clave y los datos mapeados en una secuencia particular. Las claves relevantes en un contenedor de mapa siempre se utilizan para organizar correctamente la información. Al usar sus claves específicas, se pueden recuperar los valores de un contenedor de mapa. Para recuperar los datos del contenedor, utilizamos la función MAP :: Search (), que aparece en el archivo de encabezado .

MAP :: Search () es una función incorporada en C ++ STL (Biblioteca de plantilla estándar) que proporciona un iterador o un iterador estático que apunta a la ubicación en el mapa en el que se encuentra la clave. Produce un iterador o un iterador estático que hace referencia al mapa; Si la clave no está disponible en el contenedor, entonces mapa.se llama a la función final ()."

Ventajas de la función MAP :: Search () en C++

Los beneficios del objeto STD :: MAP incluyen búsqueda rápida, inclusión y eliminación de acciones que se pueden completar en el tiempo logarítmico. El componente Find, que recibe una referencia a una clave, ofrece la función de búsqueda. El iterador del componente relevante se produce si la clave especificada se puede ubicar en el objeto STD :: MAP. El iterador anterior (map :: end ()) se da si, por el contrario, la tecla proporcionada no se encuentra en el contenedor.

Sintaxis de la función MAP :: Search () en C++

Aquí está la sintaxis de la función MAP :: Search () en C++.

"O"

Parámetros en la función MAP :: Search () en C++

Especificar la clave para encontrar en los contenedores de mapa es el único parámetro requerido que la función MAP :: Search () permite.

Valor devuelto en la función MAP :: Search () en C++

El valor calculado de la función es un iterador o un iterador constante que apunta a la ubicación de la clave en el mapa. Si de alguna manera la clave está ausente de los contenedores de mapa, la función devolverá una iteración o una iteración estática que apunta al mapa.Función End ().

Finalización de tiempo de ejecución para componente de búsqueda

Encontrar componentes en una función std :: map search () Tarda o (log n) tiempo para completar. Debido a que hay un almacenamiento interno de artículos como un árbol de búsqueda binario de equilibrio (BST), incluso en el peor de los escenario, debe ser O (log n) en comparación con std :: string. Por el contrario, la complejidad del tiempo de caso ideal para la búsqueda es O (1) porque los componentes se mantienen en una tabla relacional, y la clave sirve como indicador cuando se trata de buscar en mapas no organizados.

Ejemplo 01: use la función MAP :: Search () para buscar el componente con un valor clave proporcionado en C++

Aquí está el siguiente fragmento de código; Hemos usado la función MAP :: Search () en C ++ para encontrar la clave donde se encuentra. En nuestro código, en primer lugar, hemos agregado el archivo de encabezado "iOStream", que es un flujo de entrada-salida estándar para objetos como CIN, Cout, etc. Luego agregue el archivo de encabezado "mapa" que contiene pares de clave de valor organizado, donde cada clave es distinta y solo se puede agregar o eliminar. Luego, utilizamos el "espacio de nombres STD" estándar en nuestro código porque más de una variable, función, clase, etc., no puede compartir la misma identidad dentro del contexto exacto en c++.

#incluir
#incluir
usando el espacio de nombres STD;

Luego se proporcionó el método main (), que se ha creado para comenzar la ejecución del código. En la función main (), en primer lugar, hemos declarado una variable "n" del tipo de datos "entero". El contenedor "MAP M1" contiene un conjunto de datos organizado que contiene valores clave, y "M1" es un miembro de los contenedores asociados en la biblioteca de plantillas estándar C ++. Tenga en cuenta que las claves en el contenedor "mapa" son exclusivos. Como resultado, si se agregan nuevos elementos mientras usan las teclas actuales, no sucede nada. Sin embargo, si las claves coinciden, algunas funciones de miembros únicas en el contenedor "mapa" pueden agregar nuevos datos a los pares preexistentes.

Después de eso, "Cout" se utiliza para imprimir la línea exacta de información escrita en las comillas. Entonces "Cin" se usa para tomar la entrada del usuario. Luego, la palabra clave "automática" se usa para encontrar el elemento en el contenedor "M1".

int main ()

int n;
mapa m1 = 1, "Hola",
2, "Java",
3, "Python",
4, "Ruby",
5, "reaccionar",
6, "Angular",;
coutn;
Artículo automático = M1.encontrar (n);

Después de la declaración, se usa la condición if-else. En la instrucción IF, verificamos el elemento si está disponible en el contenedor M1, luego imprima el elemento. Si no está en el contenedor "M1", muestra el mensaje de error que se escribió en el "Cout".

if (artículo != M1.fin())

cout << "Key exists!" << endl << "The Key at index "

demás

cout <<"Key does not exist!" << endl << "Sorry for inconvenience."
<< endl <<"Please try again with correct key index from 1 to 6";

Al final de la función main (), devolveremos el "exit_success" que indica que el programa se ejecuta correctamente.

return exit_success;

Aquí está la ilustración completa de la función MAP :: Search (), que se emplea para localizar el componente utilizando el valor clave proporcionado por el usuario.

Después de compilar el programa anterior, mostrará el siguiente mensaje que el usuario debe ingresar el índice de clave que él/ella quiere encontrar. Los usuarios deben ingresar el índice de clave desde el rango de 1 a 6.

Como puede ver a continuación, cuando el usuario ingresa el índice de 1 clave, muestra el mensaje que la clave existe!"Y la clave en el índice 1 es" hola ".

Si el usuario ingresa a la clave de índice por encima del rango de 1 a 6, entonces el compilador genera el mensaje de error que "Por favor, intente nuevamente con la clave de índice correcta de 1 a 6".

Ejemplo 02: use la función MAP :: Search () para mostrar todos los componentes después de descubrir un componente

Tomemos otro ejemplo para imprimir todos los componentes de orden aleatorio después de descubrir un componente. Para evitar cualquier problema durante la compilación y la ejecución del código, hemos incluido los "bits/stdc++.H ”Archivo de encabezado en el código. La función Main () se ha inicializado después de que se haya agregado la biblioteca de encabezado y "STD del espacio de nombres". En la función main (), inicializamos el contenedor M1. Entonces los valores se insertan en orden aleatorio. Después de esa declaración de "cout" se usa para imprimir la salida, la misma escrita en las comillas. Luego se aplica la condición "para" para encontrar la posición en la que está presente "2" utilizando la función find (). Luego regrese 0, lo que implica que el programa se ejecuta correctamente.

#incluir
usando el espacio de nombres STD;
int main ()

mapa M1;
M1.insertar (2, 101);
M1.insertar (1, 689);
M1.insertar (3, 350);
M1.insertar (6, 991);
M1.insertar (4, 541);
M1.insertar (5, 542);
cout << "Elements from position 2 onward are: "<cout << "KEY\tELEMENT"<para (auto iterator = m1.encontrar (2); iterador != M1.fin(); iterador ++)

cout
regresar 0;

Aquí está la salida del programa compilado:

Conclusión

Este artículo ha presentado suficientes ejemplos para ilustrar el funcionamiento del método MAP :: Search () del lenguaje C ++. Hemos discutido el mapa :: Search () trabajando en C++. También hemos discutido las ventajas, los parámetros y el valor devuelto de la función MAP :: Search (). Al final, hemos compilado algunos ejemplos para ayudar al usuario a buscar el componente con un valor clave en C++.