ça y´est, je pense avoir trouvé pourquoi vector "paraissait" plus rapide qu´une simple allocation dynamique
ça viendrait du mécanisme de pagination.
Il m´a suffit de mettre une deuxieme fois le remplissage de tableau pour voir qu´il était bien plus rapide, et d´observer l´option "performance" pour voir l´évolution mémoire. (avec des system("pause") dans le programme)
Apres le new int[], je constate que la mémoire monte, MAIS que la mémoire physique utilisée ne monte pas.
Par contre, le resize() du vector fait monter la mémoire, et la mémoire physique.
La mémoire physique pour le tableau augmente pendant le for.
J´en conclus que le new n´alloue pas de mémoire physique (et c´est un vieux souvenir qui remonte, j´en avais entendu parler il y a fort longtemps en cours).
Il alloue de la mémoire virtuelle (a ne pas confondre avec le fichier Swap du disque dur), et cette mémoire n´est physiquement instanciée que quand on en a besoin (création de la page en RAM)
Donc c´est dans le for qu´il y a plusieurs de ces création de page, ce qui perd du temps.
Si je lance un deuxieme remplissage de tableau (j´écrase donc les premieres valeurs) alors le tableau étant déja physiquement en RAM, je n´ai pas a recréer des pages, donc la, je vais plus vite, et je vais plus vite que le vector (comme je l´attendais) (mais pas tellement plus vite)
Par contre, le vector, lui, lors du resize, a déja créé toutes ses pages en RAM, donc ne perdra pas de temps a le faire dans le for...
Si je relance un deuxieme remplissage sur le vector, j´obtiens le meme temps que le premier...
Ah ! l´informatique et les mécanismes internes, je trouve ça beau !!