¿Puedo inicializar un vector STL con 10 del mismo número entero en una lista de inicializadores? Mis intentos hasta ahora me han fallado.¿Puedo inicializar un vector STL con 10 del mismo número entero en una lista de inicializadores?
Respuesta
creo que quiere decir esto:
struct test {
std::vector<int> v;
test(int value) : v(100, value) {}
};
Esta respuesta de solo código está mal documentada y es más complicada de lo necesario. Vea la respuesta de Ed S. a continuación. – Blake
@ Cokemonkey11: Esta respuesta * no * está documentada, puedes encontrar la documentación en tu referencia favorita (la mía es cppreference). Es * no * más complicado de lo necesario, sin la clase y el constructor La respuesta de Ed S. no inicializa un vector * en una lista de inicializadores *, que es parte de la pregunta. Para este caso no importaría mucho, pero considere si la pregunta era sobre una matriz de entradas, la inicialización en la pila y como parte de la lista de inicializadores son diferentes. –
Se puede publicar lo que está haciendo
int i = 100;
vector<int> vInts2 (10, i);
vector<int>::iterator iter;
for(iter = vInts2.begin(); iter != vInts2.end(); ++iter)
{
cout << " i " << (*iter) << endl;
}
Si estás usando C++ 11 y el CCG, usted puede hacer esto:
vector<int> myVec() {[0 ... 99] = 1};
Se llama osciló inicialización y es una Extensión solo para GCC.
Guau, nunca he oído hablar de eso. Por supuesto, es mejor usar el constructor correcto. – chris
Sí. Pero esto es útil para matrices y estructuras. De todos modos, GCC tiene un montón de extensiones que hacen cosas locas. Mejor se adhiere a C++ estándar. –
La extensión "Inicializadores designados" solo está disponible para el código C, no para C++. Para obtener una lista de las extensiones de GCC disponibles, consulte https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html#C-Extensions y https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Extensions .html # C_002b_002b-Extensions –
Usted puede hacer eso con std::vector
constructor:
vector(size_type count,
const T& value,
const Allocator& alloc = Allocator());
que tiene count
y value
a repetirse.
Si desea utilizar listas de inicializador puede escribir:
const int x = 5;
std::vector<int> vec {x, x, x, x, x, x, x, x, x, x};
utilizar el constructor adecuado, que tiene un tamaño y un valor predeterminado.
int number_of_elements = 10;
int default_value = 1;
std::vector<int> vec(number_of_elements, default_value);
La lista de inicialización para el vector está soportado de C++ 0x. Si se ha compilado con C++ 98
int number_of_elements = 10;
int default_value = 1;
std::vector<int> vec(number_of_elements, default_value);
- 1. ¿Cómo encontrar múltiplos del mismo número entero en una lista de arrays?
- 2. Bitshifting para multiplicar un número entero por 10
- 3. Cómo convertir un número entero en un vector binario?
- 4. cómo inicializar un vector en C++
- 5. C++ 0x lista de inicializadores anidados
- 6. grupo pitón una lista de número entero, con valores cercanos
- 7. Cómo almacenar un número entero grande (10 dígitos)?
- 8. lista de inicializadores en Clang
- 9. ¿Cómo ordenar un vector STL?
- 10. ¿Puedo hacer aritmética de puntero en un STL :: vector :: iterator
- 11. ¿Cómo puedo explotar un número entero
- 12. reducir la capacidad de un vector stl
- 13. ¿Puedo usar inicializadores de colección con NameValueCollection?
- 14. Tamaño de vector de STL
- 15. ¿Cómo puedo extraer un número entero del almacén local y forzar a un número entero usando clojurescript
- 16. convertir un número entero en una matriz
- 17. STL thrust multiple vector transform?
- 18. ¿La mejor manera de copiar un vector a una lista en STL?
- 19. TRAGO envoltura C++ para Python: la traducción de una lista de cadenas a un vector de STL de cadenas STL
- 20. Inicializar una lista con una longitud específica en Python
- 21. Posición en Vector utilizando STL
- 22. Inicializando una estructura que contiene un vector de sí mismo
- 23. Capturando excepciones de la lista de inicializadores de un constructor
- 24. Ordenando un vector STL en dos valores
- 25. ¿Un buen C equivalente al vector STL?
- 26. La forma más rápida de escribir un vector STL grande en un archivo usando STL
- 27. OpenMP y STL vector
- 28. ¿La lista de inicializadores no funciona con el vector en Visual Studio 2012?
- 29. buscando la parte del número entero de un número
- 30. ¿Mapa de STL sobre sí mismo?
Hay una [ 'std :: vector <> constructor de'] (http://en.cppreference.com/w/cpp/container/vector/vector) (2) que hace eso; ¿Por qué querrías una lista de inicializadores? – ildjarn
@ildjarn: creo que quiere decir en una lista de inicialización de constructor, y no en el cuerpo constructor. – GManNickG
@GManNickG: A mi no me suena así. El OP solicita una forma de inicializar un vector con X cantidad de elementos, todos configurados con el mismo valor. Sí, menciona una lista de inicialización, pero dado que ya hay un constructor que cumple el * requisito * que debería ser lo suficientemente bueno –