find(): la función find() se usa para buscar el elemento en el rango dado y cada contenedor STL tiene la funcionalidad para buscar el elemento usando la función find() . La función de búsqueda genérica funciona en todos los tipos de datos .
Tipo de devolución:
- Devuelve un iterador al primer elemento en el rango [primero, último] que es igual a la clave dada .
- Si no se encuentra dicho elemento, la función devuelve el iterador al último elemento.
Acercarse:
- Se ha tomado un vector de diferentes tipos de datos como int , string , etc. y un elemento clave.
- Sobre la base de la función de búsqueda de elementos clave se llama.
- El mecanismo de trabajo de la función de búsqueda está escrito usando una plantilla .
- La función busca el elemento desde el principio hasta el final del vector, según el elemento clave. Si el valor no existe, devolverá el iterador final .
- Si el elemento clave coincide con el elemento del vector, devolverá el elemento junto con su posición.
A continuación se muestra el programa C++ para ilustrar la implementación de find() genérico en vector:
C++
// C++ program to illustrate the // implementation of generic find() #include <iostream> #include <vector> using namespace std; // Two generic templates classes one // for iterator and other for key template <class ForwardIterator, class T> ForwardIterator search( ForwardIterator start, ForwardIterator end, T key) { while (start != end) { // If key is present then return // the start iterator if ((*start) == key) { return start; } // Increment the iterator start++; } // If key is not present then, // return end iterator return end; } // Function to illustrate the use // of generic find() void inputElements() { // Vector of integer data type vector<int> v{ 10, 20, 40, 30, 50 }; // Element to be searched int key = 100; // Stores the address auto it = search(v.begin(), v.end(), key); if (it != v.end()) { cout << key << " is present" << " at position " << it - v.begin() + 1 << endl; } else { cout << key << " is not present" << endl; } cout << endl; // Vector of string data type vector<string> str{ "C++", "Python", "GFG", "Ruby" }; // Element to be searched string key2 = "GFG"; // Stores the address auto it2 = search(str.begin(), str.end(), key2); if (it2 != str.end()) { cout << key2 << " is present " << "at position " << it2 - str.begin() + 1 << endl; } else { cout << key2 << " is not Present" << endl; } } // Driver Code int main() { // Function Call inputElements(); return 0; }
Producción:
100 is not present GFG is present at position 3
Publicación traducida automáticamente
Artículo escrito por hrithikgarg03188 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA