我在MATLAB中构建了交替数字树算法,但由于速度太慢,我正在用C++重写程序。如何正确引用2D数组?
在某个阶段必须选择搜索哪棵树。根据三个值x,y和z,必须搜索三个树中的一个(存储为二维数组)。有没有办法引用二维数组,以便稍后可以在搜索功能中使用它?
伪代码示例:
double nodes1[12567][17];
double nodes2[8467][17];
double nodes3[11245][17];
fillMatrices(nodes1,nodes2,nodes3); // Here the matrices are filled with numbers from txt files.
if(condition1) // Based on x,y,z
{
nodes=nodes1;
}
elseif(condition2) // Based on x,y,z
{
nodes=nodes2;
}
else
{
nodes=nodes3;
}
searchTree(nodes,x,y,z); // Function call with variable 2d array nodes
我希望这个问题有点不清楚。我是相当新的C++是的,我确实有一些麻烦,停止,因为MATLAB的矩阵来思考;)
我试着像可能性:
double nodes[][] = nodes1[][];
double * nodes[] = nodes1[][17];
double nodes = &nodes1;
我知道数组是通过引用传递当传递给一个函数,但我无法掌握二维数组的工作方式。希望你能帮我!
问候,
恩斯特·扬
使用'std :: vector'并忘记原始数组 –
@TonyTheLion我认为向量是为了方便内存管理,并且似乎比标准数组慢。这些二维数组中的元素必须被访问数十亿次,使用向量时是否会有重大性能损失? – EJG89
@ EJG89:不,完全没有损失。为什么会有?你有没有简介过它? – Puppy