2014-09-21 100 views
0

我有4个大小为3的数组。在我的代码中,我生成了一些我放入这些数组的值。我想将这些保存在输出文件中。使用一维字符串数组分配一个2D双数组,每个字符串指向另一个一维数组的双精度数组

这种实现最优雅和最好的做法是什么?我使用双数组来存储它们,并使用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"; 
    } 
} 

此外,如何在这种情况下引导?我从来没有用过它们,所以我不太熟悉它们。 谢谢。

+0

鞋'result1'的定义等 – 2014-09-21 23:28:41

+0

有一个错字。现在怎么样? – Salchem 2014-09-21 23:33:10

+0

创建一个具有数组指针和维数的打印函数? – 2014-09-21 23:59:15

回答

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

好的,但我使用Xcode,并没有该标题。 Xcode对C++ 11没有太多的支持,所以你怎么看? – Salchem 2014-09-22 00:31:30

+0

@Salchem'双坐标[4] [3] = {arr1,arr2,arr3,arr4}' – 0x499602D2 2014-09-22 00:33:29

+0

好的。这给了我一个错误:无法在初始化时将'double *'转换为'double' – Salchem 2014-09-22 00:39:18

相关问题