24 Utilisateur(s) en ligne

Les vecteurs en C++

Par Babycool


Salut à tous, dans ce tuto, je vais présenter ce qu'est un vecteur.

J'expliquerai donc ici :
- Ce qu'est un vecteur,
- La syntaxe pour l'utiliser,
- Les fonctions principales d'un vecteur.

  • I/ qu'est-ce qu'un vecteur :

Un vecteur, c'est comme un tableau, en mieux. Il dispose de nombreuses fonctions permettant une utilisation plus complète et permet une réallocation de mémoire de meilleur facture. Dans un vecteur, on peut mettre n'importe quel type d'objet (entendez par là, n'importe quel type, int, char, char*, etc) pour les utiliser ensuite. Voilà en gros ce qu'est un vecteur.

  • II/ Comment utiliser un vecteur :

Pour pouvoir utiliser un vecteur, il faut déjà mettre fichier son fichier-entête comme cela

#include <vector>//pas besoin de .h pour une entête standard

Ensuite, on veut utiliser les vecteurs. Pour déclarer un nouveau vecteur, on fait ainsi :

vector<int> MonVec(100)//"int" est le type d'objet que le vecteur pourra contenir, MoonVec est le nom du vecteur et (100) est sa taille. Elle est facultative.


Pour ajouter une objet dans un vecteur qui a une taille, on fait :

MonVec[x] = 2;//avec x entre 0 et la taille du vecteur-1

Il est important de préciser la taille du vecteur lors de sa création si l'on veut assigner une valeur au vecteur par index (c'est à dire avec l'opérateur [ ] ). Sinon, il en résulte une erreur à l'exécution difficile à détecter (en effet, le compilateur ne voit pas l'erreur).

Code complet avec un vecteur :

#include <iostream>
#include <vector>
using namespace std ;
int main()
{
     vector<int> MyVec(100);
     vector<int> VecSansTaille;

     MyVec[0]=100;//correct
     MyVec[100]= 10;//erreur, dépassement de capacité, MyVec(100) ne veut que 100 éléments en comptant le 0
     VecSansTaille[10] = 15; //erreur, dépassement de capacité, VecSansTaille n'a pas de taille
}


Maintenant, voyons les fonctions.

  • III/ Fonctions Principales :
+ size()
     Renvoie le nombre d'éléments du vecteur.
+ empty()
     Renvoie true si le vecteur est vide, false sinon.
+ push_back(const T&)
     Ajoute un élément en fin de vecteur
+ pop_back()
     Supprime le dernier élément.
+ begin()
     Renvoie un itérateur vers le premier élément du vecteur.
+ end()
     Renvoie un itérateur vers l'élément *juste après* le dernier élément du vecteur.
+ clear()
     Supprime tous les éléments du vecteur.
+ resize(int n)
     Redimensionne le vecteur pour qu'il puisse accueillir n éléments..
+ reserve(int)
     Réserve de la mémoire pour n éléments. Comme ça, ensuite, on peut ajouter des éléments sans devoir réallouer de la mémoire à chaque fois.

On accède à l'élément i d'un vecteur avec monvecteur[i], ou monvecteur.at(i) : la deuxième syntaxe est un peu plus lente, mais vérifie que l'élément n°i existe bien.


Utilisation De Fonctions :

#include <vector>
#include <iostream>
using namespace std;
int main()
{
     vector<int> Myvec(100);
     for (int i = 0; i < Myvec.size(); i ++) Myvec[i]=i;// les 100 cases du vecteur sont remplies
     //MyVec.size() permet de connaître la longueur du tableau (ici 100). Ca évite de faire une supposition sur la taille du tableau si on veut le remplir en entier (j'aurais pu réduire ce vecteur et l'avoir oublié !)


     vector<int> VecSansTaille;// Je n'attribue pas de taille
     VecSansTaille.push_back(2);// vu que le vecteur n'a pas de taille, je ne peux pas utiliser la notation "VecSansTaille[0]=1; car sinon, il y aurait un dépassement de capacité
     VecSansTaille.push_back(6);
     VecSansTaille.push_back(7);
     VecSansTaille.push_back(Cool;
}


Publié le: dimanche 27 décembre 2009 (774 lectures)
Copyrights © par Oltana.net

Format imprimable

[ Retour ]