Инициализация пары векторов С++ У меня vector< pair<int, int>> myVec (N); Я хочу, чтобы все пары были инициализированы до -1, -1. Ответ 1 Здесь вы идете: #include <utility> vector<pair<int, int>> myVec (N, std::make_pair(-1, -1)); Второй аргумент этого конструктора - это начальное значение, которое примет N пар. Ответ 2 Просто добавьте дополнительную информацию (не совсем то, чего хотел Аскер, но попросил в комментариях принятого ответа): Индивидуальная инициализация может быть выполнена с помощью (С++ 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)}; В старых стандартах на C++, что-то вроде этого будет работать: 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);
Ответ 1 Здесь вы идете: #include <utility> vector<pair<int, int>> myVec (N, std::make_pair(-1, -1)); Второй аргумент этого конструктора - это начальное значение, которое примет N пар.
Ответ 2 Просто добавьте дополнительную информацию (не совсем то, чего хотел Аскер, но попросил в комментариях принятого ответа): Индивидуальная инициализация может быть выполнена с помощью (С++ 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)}; В старых стандартах на C++, что-то вроде этого будет работать: 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);