【发布时间】:2020-12-01 14:13:03
【问题描述】:
我想制作一个将数组转换为矩阵的程序。我做了一些这样的作品,但我对结果不太满意。我得到的输出实际上是有意义的,但我不知道我应该改变什么才能得到我想要的。
矩阵的大小不必是 4x4,它实际上可以是我想做的任何东西,它可以使我从数组中变成 4x4 [15]。
#include<iostream>
#include<vector>
#include<ctime>
#include<cstdlib>
typedef unsigned int uint;
void print(const std::vector<int>& array)
{
for(uint i=0; i< array.size(); i++)
std::cout << array[i] << " ";
std::cout << "\n" << std::endl;
}
void random(std::vector<int>& array, int size = 4)
{
srand(time(0));
std::vector<std::vector<int>> mat;
for(uint i=0; i<4; i++)
{
for(uint j=0; j<4; j++)
{
array.push_back(rand()%10);
}
mat.push_back(array);
}
print(array);
for(uint i=0; i<4; i++)
{
for(uint j=0; j<4; j++)
{
std::cout << mat[i][j] << " ";
}
std::cout << std::endl;
}
}
main()
{
std::vector<int> A;
random(A);
}
输出示例,因为它是随机的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
我想要的应该是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
【问题讨论】:
-
为每一行添加相同的向量
array。您应该为每一行定义一个新向量。