2

我想创建一个二维浮点数组,将其传递给某个类,该类在其一个函数中更改数组的元素并将该数组返回。重要的是,我不想在类中创建我的数组的副本。最好的方法是什么?我读到人们建议使用大一维数组而不是二维,有些人建议使用向量。那是最有效(就时间而言)的方法吗?

4

3 回答 3

3

数组在 C++ 中通过引用传递,因此如果您只是将数组传递给您需要更改它的任何函数,那么它将保留这些更改。不需要任何复杂的东西。基本上只是:

type array[num1][num2];
//fill it with values here
yourObject.arrayChanger(array);
于 2013-07-12T13:20:34.400 回答
2

是使用单个向量的二维数组实现。它是一个模板,因此您只需制作一个 array_2d 并且一切正常。

这种方法有几个优点:

  • 无需担心数组衰减为指针
  • 一维向量不会像std::vector<std::vector<float> >
  • 内存管理已为您完成,因此内存泄漏的可能性很小。
于 2013-07-12T13:36:00.607 回答
1
 #include <string>
 #include <iterator>
 #include <iostream>
 #include <algorithm>
 #include <array>

 using std::array ;

 array< array<int, 10 > , 20 > a ; //declared 20x10 2 dimension array
于 2013-07-13T01:48:58.887 回答