Outils pour utilisateurs

Outils du site


lang:cpp:algorithm

Ceci est une ancienne révision du document !


Présentation

Les algorithmes servent soit à lire / parcourir / modifier / obtenir une information d'un conteneur.

Lecture et écriture

std::for_each (lecture) et std::transform (écriture).

std::vector<int> vector{ 10, 20, 30, 40 };
std::vector<int>::const_iterator it;
std::vector<int>::iterator itc;
 
// Lecture / écriture
std::transform(
  vector.begin(),
  vector.end(),
  vector.begin(),
  [](int i)
  {
    return i + 1;
  }
);
 
// Lecture seule
std::for_each(
  vector.cbegin(),
  vector.cend(),
  [](int i)
  {
    std::cout << i << std::endl;
  }
);

mismatch

Comparer deux classes itérables.

Ici, comparaison de deux string insensible à la casse.

#include <algorithm>
#include <string>
#include <utility>
 
std::string un = "texte";
std::string deux = "Texte";
 
std::tuple<std::string::const_iterator, std::string::const_iterator> retval =
  std::mismatch(
    un.cbegin(),
    un.cend(),
    deux.cbegin(),
    deux.cend(),
    [](char un, char deux)
    {
      return std::tolower(un) == std::tolower(deux);
    });
 
if (retval == std::make_tuple(un.cend(), deux.cend()))
  std::cout << "Identique" << std::endl;
else
  std::cout << "Différent" << std::endl;
lang/cpp/algorithm.1577958412.txt.gz · Dernière modification : 2020/01/02 10:46 de root