I tieneC++ vector de pares de inicialización
vector< pair<int, int>> myVec (N);
quiero tener todos los pares inicializan a -1, -1.
I tieneC++ vector de pares de inicialización
vector< pair<int, int>> myVec (N);
quiero tener todos los pares inicializan a -1, -1.
Aquí van:
#include <utility>
vector<pair<int, int>> myVec (N, std::make_pair(-1, -1));
El segundo argumento de que el constructor es el valor inicial de que los pares N tomarán.
sólo para añadir algo de información adicional (no del todo lo que el autor de la pregunta quisiera, pero solicitó en las observaciones de la respuesta aceptada):
inicialización individual se puede hacer con (C++ 11):
std::vector<std::pair<int, int> > vec1 = { {1, 0}, {2,0}, {3,1} };
std::vector<std::pair<int, int> > vec2 = {std::make_pair(1, 0),
std::make_pair(2, 0),
std::make_pair(3, 0)};
En las normas de edad C++, algo como esto funcionaría:
const std::pair<int,int> vals[3] = {std::make_pair(1, 0),
std::make_pair(2, 0),
std::make_pair(3, 0)};
std::vector<std::pair<int, int> > vec2 (&vals[0], &vals[0] + 3);
funcionaba muy bien, gracias! Sin embargo, tengo que esperar 12 minutos para aceptar la respuesta. – MyNameIsKhan
¿es posible inicializar el vector a diferentes valores, es decir, proporcionar un par para cada elemento vectorial? – javapowered
Sí, usando listas de inicializador: 'vector> myVec = {{-1, -1}, {2, 5}, {3, 10}};' –
mfontanini