Manipulation de données - Échange d'éléments

Manipulation de données - Recherche et remplacement

Manipulation de données - Réorganisation : rotation et permutation

Recherche et remplacement

Les algorithmes de remplacement permettent de remplacer tous les éléments d’un conteneur vérifiant une propriété particulière par un autre élément dont la valeur doit être fournie en argument. Les éléments devant être remplacés peuvent être identifiés soit par leur valeur, soit par une condition.

replace, replace_if et replace_copy_if

Voici la déclaration dans la STL :

template <class ForwardIterator, class T>  
void replace(ForwardIterator premier, ForwardIterator dernier,  
    const T &ancienne_valeur, const T &nouvelle_valeur);  

template <class InputIterator, class OutputIterator, class T>  
void replace_copy(InputIterator premier, InputIterator dernier,  
    OutputIterator destination,  
    const T &ancienne_valeur, const T &nouvelle_valeur);  

template <class ForwardIterator, class Predicat, class T>  
void replace_if(ForwardIterator premier, ForwardIterator dernier,  
    Predicat p, const T &nouvelle_valeur);  

template <class InputIterator, class OutputIterator,  
    class Predicat, class T>  
void replace_copy_if(InputIterator premier, InputIterator dernier,  
    OutputIterator destination,  
    Predicat p, const T &nouvelle_valeur);

À savoir

Lorsque le type de la valeur renvoyée par un objet fonction unaire est bool, on dit que la fonction est un prédicat unaire. Un objet fonction binaire qui renvoie une valeur bool est nommé prédicat binaire. La bibliothèque C++ standard définit plusieurs prédicats courants dans l’en-tête <functional>. Ces prédicats sont listés dans le tableau 9.1.

Tableau 9.1 : prédicats définis dans <functional>xe "prédicats"

FonctionTypeDescription
equal_tobinairearg1 == arg2
not_equal_tobinairearg1 != arg2
greaterbinairearg1 > arg2
greater_equalbinairearg1 >= arg2
lessbinairearg1 < arg2
less_equalbinairearg1 <= arg2
logical_andbinairearg1 && arg2
logical_orbinairearg1 ⎢⎢ arg2
logical_notbinaire!arg1


Le code 9.4 illustre l’algorithme replace.

Code 9.4 : algorithme de recherche et de remplacement

#include <iostream>  
#include <algorithm>  

using namespace std;  

int main()  
{  
   int tab[10] = {1, 2, 10, 9, 3, 2, 9, 4, 2, 9};  
   //On remplace tous les 9 par des 3 :  
   replace(tab, tab+10, 9, 3);  
   //On affiche le résultat :  
   int i;  
   for (i=0; i<10; i++)  
      cout << tab[i] << endl;  
}


Le texte original de cette fiche pratique est extrait de
«Tout sur le C++» (Christine EBERHARDT, Collection
CommentCaMarche.net, Dunod, 2009)

Dernière modification le vendredi 30 octobre 2009 à 12:09:27.Ce document intitulé « Manipulation de données - Recherche et remplacement » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Meilleures réponses pour « Manipulation de données Recherche et remplacement » dans :
[VBA] RechercheV Polyvalente VoirRECHERCHE POLYVALENTE Pour les accros et les inconditionnels des fonctions d'Excel, avant de crier au scandale, lisez les quelques lignes suivantes. La RechercheV d'origine a beaucoup de limites: La colonne de la donnée doit être avec un offset...
Supprimer l'historique des recherches VoirLorsque vous utilisez un formulaire de saisie, par exemple dans la barre de recherche de Google, le navigateur affiche la liste des dernières recherches. Pour des raisons de confidentialité ou d'optimisation, vous souhaitez supprimer une ou...
Donner un look Vista à Windows XP VoirVous aimez le look de Windows Vista mais pas ces bugs ? Alors donnez l’apparence de Vista à XP ! Pour cela, utilisez BricoPack Vista Inspirat. ATTENTION : Il existe d’autres solutions tel que Vista Transformation Pack, qui ajoute en plus de...
Télécharger Smultron VoirSmultron est un éditeur de texte évolué. Il propose différentes fonctionnalités : numérotaion des lignes coloration syntaxique en plusieurs langages exécution de commandes prévisualisation de la page en HTML rechercher/remplacer sur...
Télécharger Renamer4Mac VoirRenamer4Mac permet de renommer facilement un grand nombre de fichiers. Par un simple glisser/déposer des fichiers sur son icône ou dans sa fenêtre, on peut agir de différentes manières. par Rechercher/Remplacer (expression régulière et...
Télécharger TextWrangler VoirTextWrangler est un éditeur de texte évolué. Il propose de nombreuses fonctionnalités : recherche/remplacement simple ou sur plusieurs fichiers utilisation d'expressions rationnelles (regexp) comparaisons de fichiers presse-papiers...
Bases de données - Introduction VoirQu'est-ce qu'une base de données ? Une base de données (son abréviation est BD, en anglais DB, database) est une entité dans laquelle il est possible de stocker des données de façon structurée et avec le moins de redondance possible. Ces données...
Le langage SQL VoirQu'appelle-t-on SQL? SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de données (LMD, ou en anglais DML,...
PHP - Créer un moteur de recherche VoirIdée générale Le moteur de recherche ci-dessous ne correspond qu'à une idée possible de moteur de recherche simple, ne gérant qu'un seul mot clé. Le concept du fonctionnement de ce moteur est de créer une base de donnée contenant les mots clés de...
Collection CommentÇaMarche.net