Ответ на ваш вопрос уже упоминается в комментариях (@MatthieuBrucher).
std::pair<vector<Point>, vector<int>> group_dscrp{size, size}
инициализирует пару векторов.
Однако, если вам нужна структура данныхкоторый содержит как Point
, так и radius
член Circle
, вы можете переосмыслить (как упомянуто @WhozCraig)
std::vector<std::pair<Point, int>> group_dscrp
Теперь вы можете снова либо сыграть с std::transform
std::transform(group.cbegin(), group.cend(), std::back_inserter(group_dscrp),
[](const Circle& circle) {return std::pair<Point, int>{ circle.p, circle.radius }; });
или используйте простой цикл на основе диапазона для вставки в group_dscrp
следующим образом:
std::vector<Circle> group;
std::vector<std::pair<Point, int>> group_dscrp;
group_dscrp.reserve(size);
for (const Circle& circle : group) group_dscrp.emplace_back(circle.p, circle.radius);