我想创建一个浮点数的2D数组,将它传递给某个类,该类在其中一个函数中更改数组的元素并返回该数组。重要的是,我不想在类中创建我的数组的副本。最好的方法是什么?我读到人们建议使用大型1D阵列而不是2D,有些人建议使用矢量。这是最有效的(在时间上)方法吗?
答案 0 :(得分:3)
数组在C ++中通过引用传递,因此如果您只是将数组传递给需要更改它的任何函数,那么它将保留这些更改。不需要任何复杂的事情。基本上只是:
type array[num1][num2];
//fill it with values here
yourObject.arrayChanger(array);
答案 1 :(得分:2)
Here是使用单个向量的二维数组实现。它是一个模板,所以你只需要创建一个array_2d,一切都可以正常工作。
此方法有一些优势:
std::vector<std::vector<float> >
答案 2 :(得分: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