Parcours
/
C++
C++
/
Programme
/
Tableaux et vecteurs
Ta

Tableaux et vecteurs en C++

3 exercices

À propos de Tableaux et vecteurs

Tableaux et vecteurs

C++ propose différents conteneurs pour stocker des éléments de même type de manière ordonnée. Il y a std::array pour les conteneurs de taille fixe et std::vector, qui apporte des capacités de redimensionnement dynamique.

Construction

Quand on déclare un tableau ou un vecteur, il faut préciser le type des éléments que ce conteneur va stocker. Les tableaux ont aussi besoin d'une taille. Regarde ces exemples pour voir l'initialisation des deux types de conteneurs :

#include <array>
#include <string>

// std::array<element_type, size> variable_name {list of elements}
std::array<std::string, 3> indie_rock {"yeah", "yeah", "yeah"};
// indie_rock contains the elements "yeah" three times

Les vecteurs ont généralement besoin de plus d'espace, puisqu'ils allouent de la mémoire pour permettre une croissance ultérieure. On n'a pas besoin de préciser de taille :

#include <vector>

// std::vector<element_type> variable_name {list of elements}
std::vector<int> countdown {3, 2, 1};
// my_vector contains the elements 3, 2 and 1

Remarque : tu n'as pas besoin de connaître les mécanismes exacts qui se cachent derrière le concept de template pour l'instant, il aura son propre concept plus bas dans l'arbre du programme.

Accès aux éléments

Les vecteurs et les tableaux partagent les mêmes fonctions pour accéder à leurs éléments. On peut utiliser les fonctions membres front et back pour obtenir le premier et le dernier élément du conteneur. Il y a aussi at et l'opérateur [] pour accéder à des éléments précis.

countdown[0];
// => 3
countdown.at(2);
// => 1
countdown[1] = 4;
// countdown now contains 3, 4 and 1
indie_rock.back() = "yeahs";
// indie_rock is now "yeah", "yeah", "yeahs"

Remarque : si tu choisis une position qui ne se trouve pas dans les limites de ton conteneur, [] peut entraîner un comportement indéfini. La fonction at lèverait une exception, ce qui pourrait te faciliter la vie à long terme.

Modificateurs de vecteur

Comme la taille d'un vector n'est pas fixe, il est possible d'ajouter ou de supprimer des éléments. Deux fonctions courantes pour cela sont emplace_back et pop_back.

std::vector<std::string> witches {"Holly", "Alyssa", "Shannen"};
witches.pop_back();
// Shannen is no longer with the witches
witches.emplace_back("Rose");
// Rose has joined the team

Capacité

On peut vérifier si un conteneur est vide avec la fonction membre empty. Si on veut connaître le nombre d'éléments, on peut utiliser size.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet

Apprends Tableaux et vecteurs

L'entraînement est verrouillé

Déverrouille 4 exercices de plus pour t'entraîner sur Tableaux et vecteurs