logo

std::trova in C++

std::trova è una funzione definita all'interno file di intestazione che trova l'elemento nell'intervallo specificato. Restituisce un iteratore alla prima occorrenza dell'elemento specificato nella sequenza data. Se l'elemento non viene trovato, viene restituito un iteratore fino alla fine.

Sintassi:



input_iterator std::find (input_iterator first , input_iterator l ast , const T& value );>

parametri:

    primo: iteratore nella posizione iniziale nella sequenza. last: iteratore da posizionare subito dopo la posizione finale nella sequenza. (Nota che vector.end() punta alla posizione successiva dell'ultimo elemento della sequenza e non all'ultima posizione della sequenza). valore: valore da cercare.

Valore di ritorno :

  • Se il valore è trovato nella sequenza viene restituito l'iteratore alla sua posizione.
  • Se il valore è non trovato , viene restituito l'iteratore all'ultima posizione.

NOTA : input_iterator è il tipo di iteratore del contenitore utilizzato e T è il nome del tipo definito nel modello di funzione.



Esempio:

C++

Java lungo da stringere






// C++ program to Demonstrate> // std::find for vectors> #include> // Driver code> int> main()> {> >std::vector<>int>>cosa{10, 20, 30, 40};> >// Iterator used to store the position> >// of searched element> >std::vector<>int>>::iteratore it;> >// Print Original Vector> >std::cout <<>'Original vector :'>;> > >for> (>int> i = 0; i std::cout << ' ' << vec[i]; std::cout << ' '; // Element to be searched int ser = 30; // std::find function call it = std::find(vec.begin(), vec.end(), ser); if (it != vec.end()) { std::cout << 'Element ' << ser << ' found at position : '; std::cout << it - vec.begin() << ' (counting from zero) '; } else std::cout << 'Element not found. '; return 0; }>

>

>

Produzione

Original vector : 10 20 30 40 Element 30 found at position : 2 (counting from zero)>

Complessità temporale: SU)
Spazio ausiliario: O(1)

NOTA: la funzione std::find() è definita all'interno del file di intestazione. Quindi, dobbiamo includere quel file di intestazione prima di utilizzare la funzione di ricerca.

Come possiamo vedere che la complessità temporale di std::find() è O(n) e funziona anche su sequenze non ordinate, possiamo concludere che utilizza il metodo ricerca lineare algoritmo nella sua implementazione.

Articoli Correlati:

  • std::cerca
  • std::trova_if, std::trova_if_not
  • std::nth_elemento
  • std::trova_fine