Libreria di algoritmi C ++ - Funzione adiacente_find ()

Descrizione

La funzione C ++ std::algorithm::adjacent_find() trova la prima occorrenza di due elementi consecutivi identici e restituisce un iteratore che punta al primo elemento se l'elemento identico esiste consecutivamente altrimenti restituisce un iteratore che punta all'ultimo elemento.

Dichiarazione

Di seguito è la dichiarazione per std :: algoritmo :: adiacente_find () modulo di funzione std :: intestazione algoritmo.

C ++ 98

template <class ForwardIterator>
ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last);

Parametri

  • first - Inoltra gli iteratori alle posizioni iniziali della sequenza cercata.

  • last - Inoltra gli iteratori alle posizioni finali della sequenza cercata.

Valore di ritorno

Restituisce un iteratore che punta al primo elemento se esiste un elemento identico consecutivamente altrimenti restituisce un iteratore che punta all'ultimo elemento.

Eccezioni

L'eccezione viene generata se un qualsiasi oggetto di confronto degli elementi genera un'eccezione.

Tieni presente che gli argomenti non validi causano un comportamento indefinito.

Complessità temporale

Lineare nella distanza tra il primo e l' ultimo .

Esempio

L'esempio seguente mostra l'utilizzo della funzione std :: algoritmo :: adiacente_find ().

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main(void) {
   vector<int> v = {1, 2, 3, 3, 5};
   auto it = adjacent_find(v.begin(), v.end());

   if (it != v.end())
      cout << "First occurrence of consecutive identical element = " << *it << endl;

   v[3] = 4;

   it = adjacent_find(v.begin(), v.end());

   if (it == v.end())
      cout << "There are no cosecutive identical elemens" << endl;

   return 0;
}

Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:

First occurrence of consecutive identical element = 3
There are no cosecutive identical elemens