将5个向量合并到Matrix C ++

时间:2016-04-10 05:18:38

标签: c++ algorithm

我正在使用C ++ 我有5个向量。

int currDim = 5;
int a[currDim] = {1,6,11,16,21};
int b[currDim] = {2,7,12,17,22};
int c[currDim] = {3,8,13,18,23};
int d[currDim] = {4,9,14,19,24};
int e[currDim] = {5,10,15,20,25};

我想将它们合并到一个int matrix[currDim][5].
矩阵应为:

{1,2,3,4,5}
{6,7,8,9,10}
{11,12,13,14,15}
{16,17,18,19,20}
{21,22,23,24,25}

我做了什么:

int j=k=0;
for(int i = 0; i<currDim ; i++)
{
     matrix[i][k++] = a[j];
     matrix[i][k++] = b[j];
     matrix[i][k++] = c[j];
     matrix[i][k++] = d[j];
     matrix[i][k++] = e[j];
     k = 0;
     j++;
}

代码是有效的,但我正在寻找更好的方法来提高效率,任何建议?

1 个答案:

答案 0 :(得分:1)

首先,我可能不得不为我的答案道歉可能无济于事,因为我不太确定你的意思是要求“更好的方式”:这可能意味着更好的编码风格提高效率,或通用性

由于这是一项非常简单的任务,只需要处理25个分配操作,因此效率不是一个大问题。

但是,为了优雅,您可以考虑使用指针数组来存储a,b,c,d,e并用简单优雅的循环替换五个过多的赋值语句,如下面的代码所示:

++i

如果我的方法对您有帮助,请告诉我。

P.S。我通常最后留下左括号而不是开始换行,我倾向于使用i++而不是<%= f.hidden_field :additional_params, value: 'some_value' %>,这更多是个人习惯,你不需要完全遵循我的风格