El set::find es una función integrada en C++ STL que devuelve un iterador al elemento que se busca en el contenedor del conjunto. Si no se encuentra el elemento, el iterador apunta a la posición justo después del último elemento del conjunto.
Sintaxis:
set_name.find(element)
Parámetros: la función acepta un elemento de parámetro obligatorio que especifica el elemento que se buscará en el contenedor establecido.
Valor de retorno: la función devuelve un iterador que apunta al elemento que se busca en el contenedor del conjunto. Si no se encuentra el elemento, el iterador apunta a la posición justo después del último elemento del conjunto.
El siguiente programa ilustra la función anterior.
CPP
// CPP program to demonstrate the // set::find() function #include <bits/stdc++.h> using namespace std; int main() { // Initialize set set<int> s; s.insert(1); s.insert(4); s.insert(2); s.insert(5); s.insert(3); // iterator pointing to // position where 3 is auto pos = s.find(3); // prints the set elements cout << "The set elements after 3 are: "; for (auto it = pos; it != s.end(); it++) cout << *it << " "; return 0; }
The set elements after 3 are: 3 4 5
Complejidad de tiempo: La complejidad de tiempo de set_name.find(key) es O(log N) . Como los elementos se almacenan de forma ordenada por defecto.
Caso especial: cuando el elemento que se busca no está presente en el conjunto, se devuelve un iterador que apunta al final del conjunto.
El siguiente programa ilustra esto:
C++
#include <bits/stdc++.h> using namespace std; int main() { // Initialize set set<int> s; s.insert(1); s.insert(4); s.insert(2); s.insert(5); s.insert(3); // finding position of 6 auto pos = s.find(6); // print element if it is present in set if(pos != s.end()) cout << "Element found at position : "<< *pos; else cout << "Element not present in set"; return 0; }
Element not present in set