BIBLIOTHÈQUE STANDARD C++

Salut ce forum apprends les bases du c++

Moderator: Rick

Post Reply
Hydraxx
Site Admin
Posts: 114
Joined: Mon Jan 12, 2026 4:04 pm
Location: France
Contact:

BIBLIOTHÈQUE STANDARD C++

Post by Hydraxx »

BIBLIOTHÈQUE STANDARD C++

À QUOI ÇA SERT ?

Le C++ ne se résume pas au langage.

Sa bibliothèque standard fournit énormément de briques déjà testées et optimisées.


1. CONTENEURS

Code: Select all

std::vector
std::array
std::map
std::unordered_map
Ils évitent de réécrire toi-même des structures de données complexes.


2. CHAÎNES

Code: Select all

std::string
std::wstring
Gestion automatique de la mémoire textuelle.


3. MÉMOIRE

Code: Select all

std::unique_ptr
std::shared_ptr
Ces classes encapsulent l’ownership.


4. THREADS

Code: Select all

std::thread
std::mutex
std::condition_variable

5. ATOMIQUES

Code: Select all

std::atomic<int>
Permet des opérations atomiques sans data race pour certaines données partagées.


6. TEMPS

Code: Select all

std::chrono
Pour mesurer des durées ou représenter du temps de façon portable.


7. FILESYSTEM

Code: Select all

std::filesystem
Pour :
  • chemins ;
  • fichiers ;
  • répertoires ;
  • tailles ;
  • itération.

8. POURQUOI UN DEV SYSTÈME DOIT CONNAÎTRE LA STL


Faire du bas niveau ne signifie pas :

"tout réécrire à la main".

Exemple :

Si tu as besoin d’un buffer dynamique en user-mode :

Code: Select all

std::vector<std::byte> buffer(4096);
est souvent beaucoup plus sûr que :

Code: Select all

void* buffer = malloc(4096);
Tu peux toujours accéder au pointeur brut :

Code: Select all

buffer.data()
Donc tu gardes la compatibilité avec les API système.


9. QUAND LA STL PEUT ÊTRE LIMITÉE


Dans :
  • kernel ;
  • firmware ;
  • environnement freestanding ;
certaines parties de la bibliothèque standard peuvent être indisponibles ou interdites.

Il faut alors connaître l’environnement précis.


10. ZERO-OVERHEAD ABSTRACTION


Une philosophie majeure du C++ est :

"Tu ne paies pas pour ce que tu n’utilises pas."

Et une abstraction bien conçue doit tendre vers le coût nécessaire de l’équivalent manuel.

Cela ne veut pas dire que tout est gratuit.

Par exemple :
  • allocation vector = coût réel ;
  • shared_ptr = compteur de références ;
  • exceptions = mécanisme runtime ;
  • virtual = dispatch indirect.
Mais le langage cherche à permettre des abstractions sans surcoût inutile.


À RETENIR


La bibliothèque standard est une boîte à outils.

Un bon développeur système sait :
  • quand utiliser une abstraction sûre ;
  • quand descendre au niveau brut ;
  • quel coût chaque abstraction implique.

Return to “Bases du C++”

Who is online

Users browsing this forum: No registered users and 0 guests