使用一维字符串数组分配2D双数组,每个数组引用另一个双精度数组

时间:2014-09-21 23:27:12

标签: c++ arrays vector

我有4个大小为3的数组。在我的代码中,我生成了一些我放在这些数组中的值。我想将它们保存在输出文件中。

此类实施的最优雅和最佳做法是什么?我使用双数组来存储它们和一个for循环来通过2D数组并保存它们,但我不喜欢这种方法。

我喜欢将所有arr1,arr2,arr3,arr4放在一个字符串数组中,然后遍历数组获取字符串,该字符串指的是具有三个值的double数组。希望我没有让那些令人困惑。 这就是我做的......

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";
    }
}

另外,在这种情况下,矢量怎么样?我从来没用过它们,所以我对它们并不熟悉。 谢谢。

1 个答案:

答案 0 :(得分:0)

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}};
}