Как объединить соответствующие элементы из нескольких векторов в один вектор структур?C++

Программы на C++. Форум разработчиков
Anonymous
Как объединить соответствующие элементы из нескольких векторов в один вектор структур?

Сообщение Anonymous »

У меня есть три std::vector

Код: Выделить всё

std::vector vec1{ "one","two","three" };
std::vector vec2{ "1","2","3" };
std::vector vec3{ "i","ii","iii" };
и структура

Код: Выделить всё

struct MyData {
std::string str1;
std::string str2;
std::string str3;
};
Мне нужно получить std::vector, который заполняется данными трех векторов:

Код: Выделить всё

std::vector myData;
myData.reserve(vec1.size());
for (int i = 0; i < vec1.size(); ++i) {
myData.emplace_back(vec1[i],vec2[i],vec3[i]);
}
Есть ли более элегантный способ вместо использования этого цикла for (например, использования представлений или чего-то подобного) для C+20? Гарантируется, что все три вектора имеют одинаковую длину.

Подробнее здесь: https://stackoverflow.com/questions/797 ... -vector-of

Вернуться в «C++»