Bibliothèque de listes C ++ - fonction remove_if ()

La description

La fonction C ++ std::list::remove_if()supprime les éléments de la liste qui remplissent la condition. Il supprime tous les éléments pour lesquels le prédicat renvoie true.

Déclaration

Voici la déclaration de l'en-tête std :: list de la fonction std :: list :: remove_if ().

C ++ 98

template <class Predicate>
void remove_if (Predicate pred);

Paramètres

pred - Prédicat unaire that, qui prend une valeur du même type et renvoie true pour que ces valeurs soient supprimées du conteneur.

Valeur de retour

Aucun.

Exceptions

Si pred est garanti de ne pas lancer , alors la fonction ne lève jamais d'exceptions.

Complexité temporelle

Linéaire ie O (n)

Exemple

L'exemple suivant montre l'utilisation de la fonction std :: list :: remove_if ().

#include <iostream>
#include <list>

using namespace std;

bool foo(int n) {
   return (n > 5);
}

int main(void) {
   list<int> l = {1, 2, 3, 4, 5, 6, 7, 8, 9};

   cout << "Contents of list before remove_if operation" << endl;

   for (auto it = l.begin(); it != l.end(); ++it)
      cout << *it << endl;

   /* remove all elements larger than 5 */
   l.remove_if(foo);

   cout << "Contents of list after remove_if operation" << endl;

   for (auto it = l.begin(); it != l.end(); ++it)
      cout << *it << endl;

   return 0;
}

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

Contents of list before remove_if operation
1
2
3
4
5
6
7
8
9
Contents of list after remove_if operation
1
2
3
4
5