У меня есть 4 массива размера 3. В моем коде я генерирую некоторые значения, которые я помещал в эти массивы. Я хотел бы сохранить их в выходном файле.
Какая самая элегантная и лучшая практика для такой реализации? Я использую двойной массив для их хранения и цикл for, чтобы пройти через 2D-массив и сохранить их, но мне не нравится этот метод.
Мне нравится помещать все arr1, arr2, arr3, arr4 в один массив строк и циклически перебирать массив, получая строку, которая ссылается на двойной массив, который имеет три значения. Надеюсь, я не ошибся. Это то, что я сделал...
double arr1[3], arr2[3], arr3[3], arr4[3];
//Omitted code that generates content of arrays
double coordinates[4][3] = {{arr1[0], arr1[1], arr1[2]},
{arr2[0], arr2[1], arr2[2]},
{arr3[0], arr3[1], arr3[2]},
{arr4[0], arr4[1], arr4[2]}};
for(int i = 0; i<4; i++)
{
for(int j = 0; j<3; j++)
{
output << coordinates[i][j]; //writing ith character of array in the file
if(j<2)
output<<",";//separate coordinates by a comma
else
output<<"\n";
}
}
Кроме того, как насчет векторов в таком случае? Я никогда их не использовал, поэтому я не знаком с ними. Спасибо.
std::array
- предпочтительная конструкция. Вот как вы можете его использовать:
#include <iostream>
#include <array>
int main()
{
std::array<int, 3> arr1, arr2, arr3, arr4;
std::array<std::array<int, 3>, 4> coordinates{{arr1, arr2, arr3, arr4}};
}
double coordinates[4][3] = {arr1, arr2, arr3, arr4}
result1
определенияresult1
и т. д.