¿Alguien me puede dar un ejemplo de cómo asignar memoria para un vector? Un par de líneas es todo lo que necesito. Tengo un vector que lleva en 20-30 elementos .. pero cuando intento a cout y compilarlo solo me dan el primer par de entradas ..Asignar memoria para un vector
Respuesta
Un std::vector gestiona su propia memoria. Se pueden utilizar los métodos reserve() y resize() a haber que asignar memoria suficiente para adaptarse a una determinada cantidad de artículos:
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.
para completar esta publicación, 'resize()' agrega elementos construidos con su constructor predeterminado (es decir, si el tipo es 'Elem', luego' Elem() ') – swegi
@swegi, por por defecto, sí. 'resize()' también puede tomar un segundo argumento que se copiará en todos los elementos nuevos. –
Pero, si solo está usando '.push_back()', ¿tiene que reasignar/cambiar el tamaño? – Charles
Tome un vistazo a this Se utiliza list.reserve (norte);
Vector cuida su memoria, y realmente no necesita usar reserve() en absoluto. Es solo una mejora en el rendimiento si ya sabes qué tan grande debe ser la lista de vectores.
Por ejemplo:
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. Use mmap para asignar memoria
- 2. ¿Dónde asigna un std :: vector su memoria?
- 3. ¿Cuándo debo usar malloc para asignar memoria?
- 4. ¿Puede un programa asignar la memoria directamente?
- 5. Memoria máxima. Un proceso .NET puede asignar
- 6. ¿Forzar un std :: vector para liberar su memoria?
- 7. ¿Cuánta memoria debería poder asignar?
- 8. ¿Asignar memoria al puntero doble?
- 9. zlib, deflate: ¿Cuánta memoria asignar?
- 10. Sin memoria al asignar cursores
- 11. No se puede asignar memoria
- 12. Longitud máxima para un vector en R
- 13. Android: no se pudo asignar memoria
- 14. SIGKILL al asignar memoria en C++
- 15. Convertir un número entero en una cadena sin asignar memoria
- 16. ¿Crear cadenas en D sin asignar memoria?
- 17. ¿Se puede usar glVertexAttribPointer para asignar un vector más pequeño a uno más grande?
- 18. ¿Cuánta memoria debe asignar 'managed_shared_memory'? (Impulso)
- 19. Asignar memoria y guardar cadena en C
- 20. memoria máxima que malloc puede asignar
- 21. Pre-asignar memoria entre HostApp y DLL
- 22. ¿Podemos asignar un valor a una ubicación de memoria dada?
- 23. C++ borrar vector, objetos, memoria libre
- 24. playframework - IOException no puede asignar memoria
- 25. reserva() de memoria multidimensional std :: vector (C++)
- 26. usando memoria sin asignar sin error?
- 27. memoria desasignación con std :: vector reasignación
- 28. Poner un vector C++ como miembro en una clase que usa un grupo de memoria
- 29. Cómo asignar un byte [] para un registro
- 30. llamada del sistema para asignar la memoria a un descriptor de archivo (mmap inverso)?
¿Tiene alguna código que podría mostrar? La última línea de tu pregunta realmente me confunde – Default
Sí, parece que has cometido un error en tu código. Probablemente no debería tener que reservar espacio manualmente – Oystein