Bibliothèque d'algorithmes C ++ - fonction adjacent_find ()

La description

La fonction C ++ std::algorithm::adjacent_find() recherche la première occurrence de deux éléments consécutifs identiques et retourne un itérateur pointant vers le premier élément si un élément identique existe consécutivement sinon retourne un itérateur pointant vers le dernier élément.

Déclaration

Voici la déclaration de la fonction std :: algorithm :: adjacent_find () sous forme d'en-tête std :: algorithme.

C ++ 98

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

Paramètres

  • first - Transférer les itérateurs vers les positions initiales de la séquence recherchée.

  • last - Transférer les itérateurs vers les positions finales de la séquence recherchée.

Valeur de retour

Renvoie un itérateur pointant vers le premier élément si un élément identique existe consécutivement, sinon retourne un itérateur pointant vers le dernier élément.

Des exceptions

Une exception est levée si un objet de comparaison d'éléments lève une exception.

Veuillez noter que les arguments non valides provoquent un comportement indéfini.

Complexité temporelle

Linéaire dans la distance entre le premier et le dernier .

Exemple

L'exemple suivant montre l'utilisation de la fonction std :: algorithm :: adjacent_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;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

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