Les fonctions permettent de décomposer votre code en blocs réutilisables.
#include <iostream>
// Déclaration de la fonction
int additionner(int a, int b);
int main() {
int resultat = additionner(5, 3);
std::cout << "Résultat: " << resultat << std::endl;
return 0;
}
// Définition de la fonction
int additionner(int a, int b) {
return a + b;
}#include <iostream>
// Fonction sans retour
void afficherMessage(std::string message) {
std::cout << message << std::endl;
}
// Passage par référence (modifie la variable originale)
void doubler(int& nombre) {
nombre *= 2;
}
int main() {
afficherMessage("Bonjour!");
int x = 5;
doubler(x);
std::cout << "x vaut maintenant: " << x << std::endl; // 10
return 0;
}#include <iostream>
int max(int a, int b) {
return (a > b) ? a : b;
}
double max(double a, double b) {
return (a > b) ? a : b;
}
int max(int a, int b, int c) {
return max(max(a, b), c);
}#include <iostream>
int main() {
int nombre = 42;
int* pointeur = &nombre; // pointeur stocke l'adresse de nombre
std::cout << "Valeur: " << nombre << std::endl;
std::cout << "Adresse: " << &nombre << std::endl;
std::cout << "Pointeur: " << pointeur << std::endl;
std::cout << "Valeur via pointeur: " << *pointeur << std::endl;
// Modifier via le pointeur
*pointeur = 100;
std::cout << "Nouvelle valeur: " << nombre << std::endl; // 100
return 0;
}#include <iostream>
int main() {
int original = 42;
int& reference = original; // reference est un alias de original
reference = 100;
std::cout << "Original: " << original << std::endl; // 100
return 0;
}#include <iostream>
#include <vector>
int main() {
// Créer un vecteur
std::vector<int> nombres;
// Ajouter des éléments
nombres.push_back(10);
nombres.push_back(20);
nombres.push_back(30);
// Accéder aux éléments
std::cout << "Premier: " << nombres[0] << std::endl;
std::cout << "Taille: " << nombres.size() << std::endl;
// Parcourir avec range-based for
for (int n : nombres) {
std::cout << n << " ";
}
std::cout << std::endl;
// Supprimer le dernier élément
nombres.pop_back();
// Vider le vecteur
nombres.clear();
return 0;
}#include <iostream>
#include <string>
struct Personne {
std::string nom;
int age;
double taille;
};
int main() {
// Créer une structure
Personne alice;
alice.nom = "Alice";
alice.age = 25;
alice.taille = 1.65;
// Initialisation directe
Personne bob = {"Bob", 30, 1.80};
std::cout << alice.nom << " a " << alice.age << " ans" << std::endl;
return 0;
}#include <iostream>
#include <string>
class Rectangle {
private:
double largeur;
double hauteur;
public:
// Constructeur
Rectangle(double l, double h) {
largeur = l;
hauteur = h;
}
// Méthodes
double calculerAire() {
return largeur * hauteur;
}
double calculerPerimetre() {
return 2 * (largeur + hauteur);
}
// Getters
double getLargeur() { return largeur; }
double getHauteur() { return hauteur; }
// Setters
void setLargeur(double l) { largeur = l; }
void setHauteur(double h) { hauteur = h; }
};
int main() {
Rectangle rect(10.0, 5.0);
std::cout << "Aire: " << rect.calculerAire() << std::endl;
std::cout << "PérimÚtre: " << rect.calculerPerimetre() << std::endl;
return 0;
}#include <iostream>
#include <fstream>
int main() {
std::ofstream fichier("exemple.txt");
if (fichier.is_open()) {
fichier << "Ligne 1\n";
fichier << "Ligne 2\n";
fichier << "Ligne 3\n";
fichier.close();
std::cout << "Fichier écrit avec succÚs" << std::endl;
} else {
std::cout << "Erreur d'ouverture" << std::endl;
}
return 0;
}#include <iostream>
#include <fstream>
#include <string>
int main() {
std::ifstream fichier("exemple.txt");
std::string ligne;
if (fichier.is_open()) {
while (std::getline(fichier, ligne)) {
std::cout << ligne << std::endl;
}
fichier.close();
} else {
std::cout << "Erreur d'ouverture" << std::endl;
}
return 0;
}#include <iostream>
int main() {
// Allouer un entier
int* p = new int;
*p = 42;
std::cout << *p << std::endl;
delete p; // Libérer la mémoire
// Allouer un tableau
int taille = 5;
int* tableau = new int[taille];
for (int i = 0; i < taille; i++) {
tableau[i] = i * 10;
}
for (int i = 0; i < taille; i++) {
std::cout << tableau[i] << " ";
}
delete[] tableau; // Libérer le tableau
return 0;
}new en utilisant delete ou delete[] !
#include <iostream>
#include <map>
#include <string>
int main() {
std::map<std::string, int> ages;
// Ajouter des éléments
ages["Alice"] = 25;
ages["Bob"] = 30;
ages["Charlie"] = 35;
// Accéder
std::cout << "Age d'Alice: " << ages["Alice"] << std::endl;
// Parcourir
for (auto& paire : ages) {
std::cout << paire.first << ": " << paire.second << std::endl;
}
return 0;
}#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nombres = {5, 2, 8, 1, 9};
// Trier
std::sort(nombres.begin(), nombres.end());
// Trouver un élément
auto it = std::find(nombres.begin(), nombres.end(), 8);
if (it != nombres.end()) {
std::cout << "Trouvé à la position: "
<< std::distance(nombres.begin(), it) << std::endl;
}
// Min et max
int minimum = *std::min_element(nombres.begin(), nombres.end());
int maximum = *std::max_element(nombres.begin(), nombres.end());
return 0;
}