Partage
  • Partager sur Facebook
  • Partager sur Twitter

STL Vector

Anonyme
    19 mars 2008 à 18:46:13

    voila j'ai lut un document sur les vector plusieur meme et je n'arrive pas a comprendre a quoi serve les iterator(et donc leur utilisation) si quelqu'un pouvait m'expliqué.
    • Partager sur Facebook
    • Partager sur Twitter
      19 mars 2008 à 18:59:14

      Les itérateurs servent à parcourir les conteneurs de la STL (par exemple un vector) à la manière d'un pointeur sur un tableau. Cela permet d'uniformiser les conteneurs de la STL. Ainsi, on peut utiliser tous les algorithmes de la STL sur les différents conteneurs de la même façon..
      • Partager sur Facebook
      • Partager sur Twitter
      Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.
      Anonyme
        19 mars 2008 à 19:02:46

        merci pour cette réponse rapide maintenant il faut que je préne l'habitude de les utilisé
        • Partager sur Facebook
        • Partager sur Twitter
          19 mars 2008 à 20:03:35

          Une petite illustration de leur utilisation...

          1. #include <iostream>
          2. #include <vector>
          3. using namespace std;
          4. int main()
          5. {
          6.     // Initialisation du tableau... classique
          7.     int tab[10] = {1,2,3,4,5,6,7,8,9,10};
          8.     /* Initialisation du vector avec le tableau
          9.     /  pour cela on utilise le constructeur qui initialise
          10.     /  le conteneur à l'aide de deux itérateurs (début et fin) */
          11.     vector<int> v(tab,tab+10);
          12.     /* En réalité on aurait pu initialiser notre vector avec
          13.     / n'importe quel conteneur pourvu que celui-ci soit muni
          14.     / d'un système d'itérateur compatible avec l'arithmetique
          15.     / des pointeurs */
          16.     // On déclare deux itérateurs...
          17.     // le premier est en fait un pointeur sur int classique
          18.     int* i = NULL;
          19.     // le second un itérateur de vector
          20.     vector<int>::iterator it;
          21.     // Parcours du tableau à l'aide d'un pointeur
          22.     for(i = tab; i < tab + 10; i++)
          23.     {
          24.         cout << *i << endl;
          25.     }
          26.     // Parcours du vector à l'aide d'un itérateur
          27.     for(it = v.begin(); it != v.end(); it++)
          28.     {
          29.         cout << *it << endl;
          30.     }
          31.     return 0;
          32. }

          • Partager sur Facebook
          • Partager sur Twitter
          Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.
            19 mars 2008 à 21:46:08

            Le mot clé c'est uniformisation, c'est nécessaire dans le cas où l'on peut créer des algorithmes uniques pour tout les conteneurs. swap, sort, find... utilises-tous des itérateurs pour ça.

            Dans le code, lorsqu'il n'y a qu'un type de conteneur utilisé, il est inutile d'utiliser les iterateurs.
            • Partager sur Facebook
            • Partager sur Twitter

            STL Vector

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown