Est-ce que quelqu'un peut me donner un exemple d'allocation de mémoire pour un vecteur? Un couple de lignes est tout ce dont j'ai besoin. J'ai un vecteur qui prend en 20-30 éléments .. mais quand je tente de compiler et cout Je ne reçois que les deux premières entrées ..Allouer de la mémoire à un vecteur
Répondre
Un std::vector gère sa propre mémoire. Vous pouvez utiliser les méthodes reserve() et resize() de l'avoir allouer suffisamment de mémoire pour s'adapter à une quantité d'articles:
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.
pour compléter ce post, 'resize()' ajoute des éléments construits avec leur constructeur par défaut (ie si le type est 'Elem', alors' Elem() ') – swegi
@swegi, par par défaut, oui. 'resize()' peut aussi prendre un second argument qui sera copié dans tous les nouveaux éléments. –
Mais, si vous n'utilisez que '.push_back()', est-ce que vous devez réallouer/redimensionner? – Charles
Jetez un oeil à this Vous utilisez list.reserve (n);
Vector prend soin de sa mémoire, et vous ne devriez pas vraiment avoir besoin d'utiliser reserve(). Ce n'est vraiment qu'une amélioration des performances si vous connaissez 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;
- 1. Allouer la mémoire constante
- 2. Allouer de la mémoire personnalisée
- 3. C++ allouer un problème de mémoire
- 4. struct c allouer dynamiquement de la mémoire
- 5. Combien de mémoire allouer à un UIImageView 320x480?
- 6. cakephp allouer de la mémoire énorme sur un nouveau serveur
- 7. allocation de mémoire pour _M_start et _M_finish dans un vecteur
- 8. Comment allouer un tableau de sorte qu'il commence à un certain endroit dans la mémoire?
- 9. Comment allouer de la mémoire dans cette fonction?
- 10. mémoire Allouer aux structures de pointeur à l'intérieur des structures
- 11. Comment allouer dynamiquement de la mémoire à un type de données polymorphique?
- 12. Mémoire maximale qu'un processus .NET peut allouer
- 13. Comment allouer et libérer de la mémoire alignée dans C
- 14. Comment allouer de la mémoire à un tableau d'instances en utilisant une classe abstraite?
- 15. Sous windows, comment allouer un bloc mémoire "write combination"?
- 16. Allouer un tampon de plus d'une taille de page sur la pile va corrompre la mémoire?
- 17. Comment allouer plus de MaxInteger octets de mémoire en C#
- 18. Modification de la mémoire de réserve de C++ vecteur
- 19. Comment allouer dynamiquement de la mémoire dans un assemblage Mac OS X?
- 20. Comment pourrais-je surcharger le "nouvel" opérateur pour allouer de la mémoire à partir d'un périphérique de mémoire secondaire?
- 21. Allouer un NSUInteger IndexBuffer
- 22. Disposition de la mémoire du vecteur <bool>
- 23. Conception de l'API - allouer la sortie?
- 24. Besoin d'aide pour allouer de l'espace pour un vecteur dans la définition de classe en utilisant boost
- 25. Un std :: vecteur de pointeurs?
- 26. Forcer un vecteur std :: pour libérer sa mémoire?
- 27. Lequel utiliser - "operator new" ou "operator new []" - pour allouer un bloc de mémoire brute en C++?
- 28. Où la mémoire d'un vecteur C++ local est-elle allouée?
- 29. Comment autoriser l'utilisateur à choisir facilement la quantité de mémoire à allouer dans une application Java Swing?
- 30. Mode Django, mod-wsgi et daemon; problème "bash: fork: ne peut pas allouer de la mémoire"
Avez-vous un code vous pourriez montrer? La dernière ligne de votre question me confond vraiment – Default
Oui, il semble que vous ayez fait une erreur dans votre code. Vous ne devriez probablement pas avoir à réserver manuellement l'espace – Oystein