2012-06-19 18 views

Respuesta

33

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.

+0

funcionaba muy bien, gracias! Sin embargo, tengo que esperar 12 minutos para aceptar la respuesta. – MyNameIsKhan

+0

¿es posible inicializar el vector a diferentes valores, es decir, proporcionar un par para cada elemento vectorial? – javapowered

+13

Sí, usando listas de inicializador: 'vector > myVec = {{-1, -1}, {2, 5}, {3, 10}};' – mfontanini

5

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); 
Cuestiones relacionadas