El map::find() es una función incorporada en C++ STL que devuelve un iterador o un iterador constante que se refiere 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 se refiere a map.end()
.
Sintaxis:
iterator=map_name.find(key) or constant iterator=map_name.find(key)
Parámetros: la función acepta una clave de parámetro obligatoria, 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 se refiere 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 de tiempo para buscar elementos:
La complejidad de tiempo para buscar elementos en std::map es O(log n). Incluso en el peor de los casos, será O(log n) porque los elementos se almacenan internamente como árbol de búsqueda binaria equilibrada (BST), mientras que, en std::unordered_map , en el mejor de los casos, la complejidad de tiempo para la búsqueda es O(1).
A continuación se muestra la ilustración de la función anterior:
CPP
// C++ program for illustration // of map::find() function #include <bits/stdc++.h> 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 : \n"; cout << "KEY\tELEMENT\n"; // find() function finds the position // at which 3 is present for (auto itr = mp.find(3); itr != mp.end(); itr++) { cout << itr->first << '\t' << itr->second << '\n'; } return 0; }
The elements from position 3 in map are : KEY ELEMENT 3 20 4 50
Complejidad de Tiempo: O(log n)
Espacio Auxiliar: O(n)