Vector.h

cs_youma85 Messages postés 82 Date d'inscription dimanche 18 février 2007 Statut Membre Dernière intervention 28 avril 2011 - 2 mars 2008 à 12:42
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 - 2 mars 2008 à 14:41
salut bein je suis débutant en stl et j'ai eu ce code j'arrive pas à comprendre ce qu'il fait merci

#include
#include
#include <vector>

using namespace std;

int main()
{
    vector iVec;
    vector::size_type indice1 = 12345, indice2;
    long i;

    cout << "iVec.size()\tiVec.capacity()\n";
    for (i = 0L; i < 1000L; i++)
    {
        indice2 = iVec.capacity();
        if (indice2 != indice1)
        {
            cout << setw(8) << iVec.size() << "        "<< setw(8) << indice2 << endl;
            indice1 = indice2;
        }
        iVec.push_back(234);
    }

    return (0);

}

2 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
2 mars 2008 à 14:27
Il étudie le fonctionnement interne d'un vector, c'est à dire la facon dont il s'agrandit lorsqu'on lui ajoute des éléments.
0
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
2 mars 2008 à 14:41
A l'exécution cela donne ça :

iVec.size()     iVec.capacity()
       0               0  rien de stocké, capacité de stockage nulle !
       1               1  on stocke un premier élément, la capacité passe à 1
       2               2  on stocke un 2nd élément, la capacité passe à 2 (2 * 1)
       3               4  on stocke un 3ème élément, la capacité passe à 4 (2 * 2)
       5               8  on stocke un 5ème élément, la capacité passe à 8 (2 * 4)
       9              16
      17              32
      33              64
      65             128  ...
     129             256
     257             512
     513            1024  on stocke un 513ème élément, la capacité passe à 1024 (2 * 512)

où l'on s'aperçoit que la capacité du vecteur double à chaque fois qu'il a besoin de se redimensionner !
Jean-François
0
Rejoignez-nous