C++ 在C+中通过类传递2D数组+;
我想创建一个二维浮点数数组,将其传递给某个类,该类更改数组中某个函数的元素并返回该数组。重要的是,我不想在类中创建数组的副本。最好的方法是什么?我读到有人建议使用大的一维数组而不是二维数组,有人建议使用向量。这是最有效的(时间上)方法? C++中的引用是通过数组传递的,所以如果您只需将数组传递到需要更改的任何函数,那么它将保持这些更改。不需要任何复杂的东西。基本上只是: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
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