Menu
Coddy logo textTech

Aide-mémoire C++

Dernière mise à jour

Hello World et structure d'un programme

L'exécution démarre à main, qui renvoie un int.

ÉlémentCode
Inclure un en-tête#include <iostream>
Point d'entréeint main() { ... }
Afficher une lignestd::cout << "Hello, World!" << std::endl;
Lire une saisiestd::cin >> x;
Utiliser l'espace de noms stdusing namespace std;
Renvoyer un succèsreturn 0;
Commentaires// line et /* block */

Types de données

TypeDescription
intEntier (généralement 32 bits)
long / long longEntiers plus larges
float / doubleNombres à virgule flottante
charOctet / caractère unique
booltrue ou false
std::stringTexte dynamique de <string>
autoLe compilateur infère le type
std::size_tType non signé pour les tailles et les indices

Variables et références

Les références sont des alias ; les pointeurs contiennent des adresses.

OpérationSyntaxe
Déclarer et initialiserint x = 5;
Initialisation par accoladesint x{5};
Constanteconst double PI = 3.14159;
Constante de compilationconstexpr int N = 10;
Référence (alias)int &r = x;
Pointeurint *p = &x;
Déréférencer un pointeur*p = 10;
Inférence de typeauto y = 3.14;

Contrôle de flux

InstructionSyntaxe
If / elseif (x > 0) { ... } else { ... }
Switchswitch (n) { case 1: ...; break; default: ...; }
Boucle whilewhile (i < n) { ... }
Boucle do-whiledo { ... } while (i < n);
Boucle forfor (int i = 0; i < n; i++) { ... }
For basé sur une plagefor (auto x : vec) { ... }
For basé sur une plage par référencefor (auto &x : vec) { ... }
Break / continuebreak; sort d'une boucle, continue; passe à l'itération suivante

Fonctions

OpérationSyntaxe
Définir une fonctionint add(int a, int b) { return a + b; }
Sans valeur de retourvoid greet() { ... }
Arguments par défautint pow(int b, int e = 2) { ... }
Passage par référencevoid inc(int &x) { x++; }
Référence const (sans copie)void print(const std::string &s) { ... }
Surchargeint max(int a, int b); et double max(double a, double b);
Lambdaauto f = [](int x) { return x * 2; };
Lambda avec captureauto g = [n](int x) { return x + n; };

Classes et POO

OpérationSyntaxe
Définir une classeclass Dog { ... };
Spécificateurs d'accèspublic:, private:, protected:
Variable membrestd::string name;
ConstructeurDog(std::string n) : name(n) {}
Destructeur~Dog() { ... }
Fonction membrevoid bark() { ... }
Créer un objetDog d("Rex");
Héritageclass Puppy : public Dog { ... };
Fonction virtuellevirtual void speak();

Conteneurs STL

Conteneurs courants de la bibliothèque standard.

ConteneurUsage et exemple
std::vector<int>Tableau dynamique : v.push_back(1); v.size();
std::stringTexte : s += "!"; s.length();
std::array<int, 3>Tableau de taille fixe avec info de bornes
std::map<K, V>Clé-valeur triée : m["a"] = 1;
std::unordered_map<K, V>Table de hachage (recherche plus rapide, sans ordre)
std::set<T>Valeurs uniques triées : s.insert(5);
std::pair<A, B>Deux valeurs : make_pair(1, "x")
std::queue / std::stackAdaptateurs file FIFO / pile LIFO

Algorithmes et itérateurs STL

De <algorithm> ; la plupart prennent une plage d'itérateurs begin/end.

OpérationSyntaxe
Itérateurs begin / endv.begin(), v.end()
Trierstd::sort(v.begin(), v.end());
Trier en décroissantstd::sort(v.begin(), v.end(), std::greater<int>());
Trouver une valeurauto it = std::find(v.begin(), v.end(), 5);
Compter les correspondancesstd::count(v.begin(), v.end(), 5);
Élément min / maxstd::max_element(v.begin(), v.end());
Sommer une plagestd::accumulate(v.begin(), v.end(), 0);
Transformer chaque élémentstd::transform(v.begin(), v.end(), v.begin(), fn);

Pointeurs intelligents et C++ moderne

Préférez les pointeurs intelligents aux new/delete bruts pour un nettoyage automatique.

FonctionnalitéSyntaxe
Propriété uniqueauto p = std::make_unique<Dog>("Rex");
Propriété partagéeauto p = std::make_shared<Dog>("Rex");
Référence non propriétairestd::weak_ptr<Dog> w = p;
Sémantique de déplacementauto v2 = std::move(v1);
Nullptrint *p = nullptr;
Liaisons structuréesauto [key, val] = *it;
Valeur optionnellestd::optional<int> maybe;
Templatestemplate <typename T> T add(T a, T b) { return a + b; }

La syntaxe C++, les conteneurs STL et les fonctionnalités modernes que vous utilisez le plus, sur une seule page. Cet aide-mémoire C++ est une référence rapide pour écrire du C++ - les types de données, les références, les classes, les conteneurs et algorithmes de la bibliothèque standard, ainsi que les pointeurs intelligents qui remplacent les new/delete bruts.

Tout ce qui figure ici est du C++ standard (C++11 et ultérieur) et se compile avec g++ ou clang++. Copiez ce dont vous avez besoin, ou essayez n'importe quel extrait en direct dans le playground C++ - aucun compilateur à installer.

FAQ de l'aide-mémoire C++

Cet aide-mémoire C++ est-il gratuit ?
Oui. Cet aide-mémoire C++ est entièrement gratuit, sans inscription. Mettez-le en favori et revenez dès que vous devez retrouver une syntaxe, un conteneur STL ou un pointeur intelligent.
Quelle est la différence entre un pointeur et une référence en C++ ?
Un pointeur est une variable qui contient une adresse ; il peut être nul, réaffecté pour pointer ailleurs, et vous le déréférencez avec *p. Une référence (int &r = x) est un alias d'une variable existante - elle doit être liée à la déclaration, ne peut jamais être nulle ni reliée, et s'utilise comme la variable elle-même. Utilisez les références pour des paramètres passés par référence plus propres, et les pointeurs lorsque vous avez besoin d'une indirection optionnelle ou réaffectable.
Dois-je utiliser new/delete ou des pointeurs intelligents ?
Préférez les pointeurs intelligents. std::unique_ptr et std::shared_ptr (via make_unique/make_shared) libèrent leur mémoire automatiquement lorsqu'ils sortent de portée, ce qui évite les fuites et les doubles libérations liées aux new/delete manuels. Ne recourez aux new/delete bruts que dans du code bas niveau ayant une raison spécifique.
Puis-je m'entraîner à C++ en ligne ?
Oui. Ouvrez le playground C++ pour compiler et exécuter n'importe quel extrait de cet aide-mémoire dans votre navigateur - aucun compilateur à installer. Quand vous voulez de la structure, le cours C++ interactif gratuit de Coddy vous emmène des variables et des boucles jusqu'aux classes et à la STL, étape par étape.
Cet aide-mémoire convient-il aux débutants ?
Oui. Il est organisé des briques de base les plus courantes (types, contrôle de flux, fonctions) jusqu'aux plus avancées (la STL et les pointeurs intelligents), pour que vous puissiez utiliser les premières sections dès le premier jour et progresser vers le reste.
Coddy programming languages illustration

Apprenez C++ avec Coddy

COMMENCER