Как объединить соответствующие элементы из нескольких векторов в один вектор структур?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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