C++ STL : algorithm

De Wiki de Calcul Québec
Aller à : Navigation, rechercher
Autres langues :anglais 100% • ‎français 100%

Le fichier d'entête <algorithm> propose toute une gamme de fonctions template pour manipuler les conteneurs. Elles effectuent efficacement la plupart des traitements classiques, tels la copie, le tri et la recherche. La portée de ces fonctions n'est pas limitée aux seuls conteneurs de la STL. En effet, un algorithme peut être appliqué à tout conteneur qui satisfait à ses exigences particulières. Cette généricité remarquable est issue de l'utilisation d'itérateurs pour accéder aux éléments stockés dans les conteneurs.

Dans la mesure du possible, il faut éviter de coder soi-même un algorithme connu. Il est préférable de se servir des outils de <algorithm>. Cette approche permet d'accélérer le développement du programme, de le rendre plus clair et concis, et d'améliorer sa performance. Les algorithmes de la STL sont bien optimisés et il est généralement futile de les réinventer.

L'extrait qui suit illustre quelques fonctionnalités de cette bibliothèque.

Fichier : algorithm.cpp
#include <algorithm>
#include <vector>
 
using namespace std;
 
enum Particle
{
    Hydrogen,
    Oxygen,
    H2O,
    Carbon,
    Helium,
    CO2
};
 
...
 
vector<Particle> particles;
 
// sort the particles
sort(particles.begin(), particles.end());
 
// shuffle the particles
random_shuffle(particles.begin(), particles.end());
 
// locate the first oxygen particle
vector<Particle>::iterator iter = find(particles.begin(), particles.end(), Oxygen);
 
// replace oxygen with carbon
replace(particles.begin(), particles.end(), Oxygen, Carbon);
 
// count the number of helium particles
int nbHelium = count(particles.begin(), particles.end(), Helium);


Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Ressources de Calcul Québec
Outils
Partager