Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C+中通过类传递2D数组+;_C++_Arrays_Visual Studio 2010_Visual Studio - Fatal编程技术网

C++ 在C+中通过类传递2D数组+;

C++ 在C+中通过类传递2D数组+;,c++,arrays,visual-studio-2010,visual-studio,C++,Arrays,Visual Studio 2010,Visual Studio,我想创建一个二维浮点数数组,将其传递给某个类,该类更改数组中某个函数的元素并返回该数组。重要的是,我不想在类中创建数组的副本。最好的方法是什么?我读到有人建议使用大的一维数组而不是二维数组,有人建议使用向量。这是最有效的(时间上)方法? C++中的引用是通过数组传递的,所以如果您只需将数组传递到需要更改的任何函数,那么它将保持这些更改。不需要任何复杂的东西。基本上只是: type array[num1][num2]; //fill it with values here yourObject.a

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

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

type array[num1][num2];
//fill it with values here
yourObject.arrayChanger(array);
是使用单个向量的二维数组实现。它是一个模板,所以你只需要制作一个数组,一切都正常工作

这种方法有几个优点:

  • 无需担心数组会退化为指针
  • 一维向量不像
    std::vector
  • 内存管理是为您完成的,因此内存泄漏的可能性最小
#包括
#包括
#包括
#包括
#包括
使用std::数组;
阵列<阵列,20>a//声明的20x10二维数组

你所说的“…哪些更改了…中数组的列?”是什么意思?你在找什么?谢谢你,安德烈,我喜欢这种方式!我建议大家仔细看看这个我觉得这个话题也很有趣:
 #include <string>
 #include <iterator>
 #include <iostream>
 #include <algorithm>
 #include <array>

 using std::array ;

 array< array<int, 10 > , 20 > a ; //declared 20x10 2 dimension array