Les Pointeurs, Tableaux et Vecteurs en C++
Amine Abidi - Lead Software Engineer C++/Qt - Co-fondateur PointerLab
December 4, 2024

Introduction
Les pointeurs, tableaux et vecteurs sont des concepts essentiels en C++ pour manipuler et organiser des données. Chacun de ces concepts joue un rôle spécifique dans la gestion de la mémoire et le traitement des données. Bien les comprendre est crucial pour développer des programmes performants et modulaires.
Dans cet article, nous aborderons :
- Les pointeurs : définition, manipulation et usage avancé.
- Les tableaux : déclarations, itérations et relation avec les pointeurs.
- Les vecteurs : utilisation de la bibliothèque standard (STL). Pour en savoir plus sur les conteneurs et algorithmes de la STL, consultez notre article : Introduction à la STL en C++.
- Les différences et complémentarités entre tableaux et vecteurs.
- Des exemples pratiques pour chaque concept.
1. Les Pointeurs
Un pointeur est une variable qui stocke l’adresse mémoire d’une autre variable. Ils sont utilisés pour manipuler la mémoire, passer des variables par référence ou créer des structures dynamiques.
Si vous souhaitez en savoir plus sur les différences entre les références et les pointeurs, ainsi que sur leurs cas d'utilisation respectifs, consultez notre article complet qui les compare en détail : Références vs Pointeurs.
a. Déclaration et Initialisation
type* nom_pointeur;
Exemple :
#include
- int main() {
- int nombre = 42;
- int* pointeur = &nombre;
- std::cout
void modifier(int* p) {
*p = 100;
}
- int main() {
- int nombre = 42;
- modifier(&nombre);
- std::cout
- int main() {
int* nombre = new int; // Allocation dynamique
*nombre = 42;
- std::cout
- int main() {
- int nombres[5] = {1, 2, 3, 4, 5};
- std::cout
- int main() {
- int nombres[5] = {1, 2, 3, 4, 5};
- for (int i = 0; i
- int main() {
- int matrice[2][3] = {{1, 2, 3}, {4, 5, 6}};
- for (int i = 0; i
- int main() {
- int nombres[5] = {1, 2, 3, 4, 5};
- int* pointeur = nombres;
- for (int i = 0; i pour utiliser les vecteurs.
#include
#include
int main() {
std::vector nombres = {1, 2, 3, 4, 5};
nombres.push_back(6); // Ajouter un élément
for (int i = 0; i
#include
int main() {
std::vector nombres;
for (int i = 1; i
#include
int main() {
std::vector nombres = {1, 2, 3, 4, 5};
for (int nombre : nombres) {
std::cout << "Nombre : " << nombre << std::endl;
}return 0;
}
---
### 4\. Tableaux vs Vecteurs
| Caractéristique | Tableau | Vecteur |
| ---------------- | -------------------- | --------------------- |
| Taille | Fixe | Dynamique |
| Mémoire | Allouée statiquement | Allouée dynamiquement |
| Sécurité d'accès | Non | Oui (`at`) |
| Performance | Plus rapide | Plus flexible |
---
### 5\. Bonnes Pratiques
- Préférez les vecteurs aux tableaux : Les vecteurs offrent plus de flexibilité et de sécurité.
- Initialisez toujours les pointeurs : Utilisez `nullptr` pour éviter les pointeurs sauvages.
- Libérez la mémoire dynamique : N'oubliez pas d'utiliser `delete` pour les allocations avec `new`.
---
### 5. Conclusion
Les pointeurs, tableaux et vecteurs sont des outils indispensables en C++. Ils permettent de manipuler efficacement les données, tout en offrant des choix adaptés à différents besoins. Tandis que les tableaux et pointeurs offrent un contrôle fin sur la mémoire, les vecteurs simplifient la gestion des collections dynamiques.
Dans le prochain article, nous aborderons la [gestion de la mémoire dynamique en C++](cpp-gestion-memoire-dynamique), où nous explorerons les concepts de `new`, `delete` et les smart pointers pour un code plus sûr et moderne.
---
### [Découvrez l'ensemble de notre blog sur le C++](/blog)


