it-swarm-eu.dev

Allouer de la mémoire pour un vecteur

Quelqu'un peut-il me donner un exemple de la façon d'allouer de la mémoire à un vecteur? Il me suffit de quelques lignes. J'ai un vecteur qui contient 20 à 30 éléments .. mais quand j'essaie de le créer et de le compiler, je n'ai que les deux premières entrées ..

18
Prasanth Madhavan

Un std :: vector gère sa propre mémoire. Vous pouvez utiliser les méthodes reserve () et resize () pour lui allouer suffisamment de mémoire pour contenir une quantité donnée d'éléments:

std::vector<int> vec1;
vec1.reserve(30);  // Allocate space for 30 items, but vec1 is still empty.

std::vector<int> vec2;
vec2.resize(30);  // Allocate space for 30 items, and vec2 now contains 30 items.
53
Frédéric Hamidi

Jetez un œil à this Vous utilisez list.reserve (n);

Vector prend soin de sa mémoire et vous ne devriez pas du tout avoir vraiment besoin d'utiliser reserve (). Ce n'est vraiment une amélioration des performances que si vous savez déjà la taille de la liste des vecteurs.

Par exemple:

std::vector<int> v;
v.reserve(110); // Not required, but improves initial loading performance

// Fill it with data
for(int n=0;n < 100; n++)
    v.Push_back(n);

// Display the data
std::vector<int>::iterator it;
for(it = v.begin(); it != v.end(); ++it)
    cout << *it;
7
Simon Hughes