Conteneurs Associatifs en C++: `std::map` et `std::set`
Cette section explore l'utilisation des conteneurs associatifs std::map et std::set de la Standard Template Library (STL) en C++.
1. Concepts Fondamentaux
1.1 Conteneurs Séquentiels et Associatifs
La STL C++ inclut deux catégories principales de conteneurs :
Conteneurs Séquentiels : Ils stockent des éléments dans un ordre linéaire et maintienn ...
Publié le 1 juin à 17h22
Concours provincial de la 11e compétition Lanqiao pour les groupes Junior et Senior en C++ (édition 2020)
Partie 1 : Questions à choix multiples Question 1 Enoncé : La valeur de l'expression '6' - '1' est ( ) A. L'entier 5 B. Le caractère '5' C. Expression invalide D. Le caractère '6' Réponse correcte : A Explication : En C++, les littéraux de type caractère (comme '6', '1') sont implicitement convertis en leur valeur de code ASCII pour effectuer d ...
Publié le 1 juin à 13h53
Modèles de performance d'objets en C++ : Singleton et Flyweight
Introduction aux modèles de performance d'objets
La programmation orientée objet résout efficacement les problèmes d'abstraction, mais cela implique des coûts en termes de ressources. Dans la plupart des cas, ces coûts sont négligeables. Cependant, pour des scénarios spécifiques, il est crucial de les gérer avec soin pour optimiser les performa ...
Publié le 1 juin à 12h12
Guide pratique des conteneurs et algorithmes STL en C++
Structures pair
La structure std::pair permet de grouper deux éléments de types potentiellement différents. Elle est analogue à une structure personnalisée simple. Les éléments sont accessibles via les membres first et second.
Exemple d'utilisation de pair
#include <iostream>
#include <string>
#include <utility> // Nécessaire ...
Publié le 1 juin à 11h56
Comptage des nœuds feuilles dans un arbre de hiérarchie familiale
Considérons une hiérarchie familiale modélisée par un arbre généalogique. L'objectif est de déterminer, pour chaque niveau de profondeur depuis la racine, le nombre de membres sans enfants (nœuds feuilles).
Spécification d'entrée : Chaque cas de test débute par une ligne contenant deux entiers N et M. N représente le nombre total de nœuds dans ...
Publié le 1 juin à 07h08
Implémentation des algorithmes EK et Dinic pour le flot maximal
Le problème de flot maximal consiste à déterminer la quantité maximale de flux pouvant être acheminée d'une source à un puits dans un réseau. Deux algorithmes courants sont l'algorithme EK (Edmonds-Karp) et l'algorithme Dinic, tous deux basés sur la recherche de chemins aumgentants.
Algorithme EK (Edmonds-Karp)
L'algorithme EK utilise une reche ...
Publié le 1 juin à 04h09
Parcours d'Arbres Binaires en C++ : Méthodes Itératives et Récursives
Parcours Pré-Ordre d'un Arbre Binaire
Méthode Récursive
La mise en œuvre récursive dépend de trois éléments fondamentaux :
Définir les paramètres et la valeur de retour de la fonction récursive.
Établir la condition d'arrêt de base.
Définir la logique d'appel récursif pour un nœud unique.
/**
* Définition pour un nœud d'arbre binaire.
* ...
Publié le 1 juin à 02h08
Fabricant de brochettes de dango ultime
Problème
JOI est un artisan de dango. Il existe N couleurs de dango, numérotées de 1 à N. JOI possède A_i dangos de la couleur i (pour 1 ≤ i ≤ N).
Il peut sélectionner 3 dangos pour former une brochette. Les couleurs des trois dangos (c₁, c₂, c₃) doivent respecter les conditions suiventes :
|c₁ - c₂| ≤ 1
|c₂ - c₃| ≤ 1
|c₃ - c₁| ≤ 1
Autrement ...
Publié le 31 mai à 14h10
Solutions en C++ pour des problèmes de concours de codage sur Nowcoder
Problème 1 : Vérification de parité
Ce problème consiste à déterminer si un entier est pair. Si l'entier est impair, on retourne -1 ; sinon, on le divise en deux parties égales.
#include <iostream>
using namespace std;
int main() {
int valeur;
cin >> valeur;
if (valeur % 2 != 0) {
cout << -1;
} else {
...
Publié le 30 mai à 23h15