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 è riportata la dichiarazione per la funzione std :: algoritmo :: adiacente_find () modulo std :: intestazione algoritmo.

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

Parametri

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

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

  • pred- Questa è una funzione che accetta due argomenti e restituisce bool .

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 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;

bool predicate(int a, int b) {
   return (a == b);
}

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

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

   it = adjacent_find(++it, v.end(), predicate);

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

   return 0;
}

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

First occurrence of consecutive identical element = 3
Second occurrence of consecutive identical element = 5