El mapa::buscar() es una función incorporada en C++ STL que devuelve un iterador o un iterador constante que hace referencia a la posición donde la clave está presente en el mapa. Si la clave no está presente en el contenedor del mapa, devuelve un iterador o un iterador constante que se refiere a mapa.end()
.
Sintaxis:
iterator=map_name.find(key) or constant iterator=map_name.find(key)>
Parámetros: La función acepta un parámetro obligatorio. llave, que especifica la clave que se buscará en el contenedor del mapa.
Valor de retorno: La función devuelve un iterador o un iterador constante que hace referencia a la posición donde está presente la clave en el mapa. Si la clave no está presente en el contenedor del mapa, devuelve un iterador o un iterador constante que hace referencia a map.end().
Complejidad temporal para el elemento de búsqueda:
La complejidad del tiempo para buscar elementos en std::mapa es O(log n). Incluso en el peor de los casos, será O(log n) porque los elementos se almacenan internamente como un árbol de búsqueda binaria equilibrada (BST), mientras que, en std::mapa_desordenado En el mejor de los casos y la complejidad del tiempo promedio para la búsqueda es O(1) porque los elementos se almacenan en una tabla Hash y, por lo tanto, la clave actúa como un índice durante la búsqueda en mapas desordenados. Pero la complejidad temporal en el peor de los casos para la búsqueda es O(N).
A continuación se muestra la ilustración de la función anterior:
C++
// C++ program for illustration> // of map::find() function> #include> using> namespace> std;> int> main()> {> >// Initialize container> >map<>int>,>int>>m;> >// Insert elements in random order> >m.insert({ 2, 30 });> >m.insert({ 1, 40 });> >m.insert({ 3, 20 });> >m.insert({ 4, 50 });> >int> s1=2;>//element1 to find (exist in the map)> >int> s2=5;>//element2 to find (does not exist in the map)> > >cout <<>'Element '>< if(m.find(s1)!=m.end()){ //if the element is found before the end of the map cout<<' : found : Value : '< //if the element is present then you can access it using the index } else cout<<' : Not found'< cout << 'Element '< if(m.find(s2)!=m.end()){ //if the element is found before the end of the map cout<<' : found : Value : '< //if the element is present then you can access it using the index } else cout<<' : Not found'< return 0; }> |
: en java
>
>Producción
Element 2 : found : Value : 30 Element 5 : Not found>
Complejidad del tiempo : O(log n)
Espacio Auxiliar : En)
El siguiente código es un programa para imprimir todos los elementos después de encontrar un elemento:
CPP
director Karan Johar
// C++ program for illustration> // of map::find() function> #include> using> namespace> std;> int> main()> {> >// Initialize container> >map<>int>,>int>>MP;> >// Insert elements in random order> >mp.insert({ 2, 30 });> >mp.insert({ 1, 40 });> >mp.insert({ 3, 20 });> >mp.insert({ 4, 50 });> >cout <<>'Elements from position of 3 in the map are :
'>;> >cout <<>'KEY ELEMENT
'>;> >// find() function finds the position> >// at which 3 is present> >for> (>auto> itr = mp.find(3); itr != mp.end(); itr++) {> > >cout ' ' '
'; } return 0; }> |
>
>Producción
Elements from position of 3 in the map are : KEY ELEMENT 3 20 4 50>
Complejidad del tiempo: O(log n)
Espacio Auxiliar: En)