C++ 为向量的向量赋值
我已经创建了一个向量向量或大小为nxn的二维数组。我想给这个向量的每个位置分配一些n-2值,例如网格[1][2]=3,并且对于向量中的其他位置,值3不应该相同,只有网格[1][2]应该有值3。 有人能帮我写代码吗?我们也能用srand函数来做吗?C++ 为向量的向量赋值,c++,arrays,vector,2d,C++,Arrays,Vector,2d,我已经创建了一个向量向量或大小为nxn的二维数组。我想给这个向量的每个位置分配一些n-2值,例如网格[1][2]=3,并且对于向量中的其他位置,值3不应该相同,只有网格[1][2]应该有值3。 有人能帮我写代码吗?我们也能用srand函数来做吗? 谢谢假设您对生成的随机数没有任何限制,下面是一个填充然后打印2D矢量数组的示例: int n = 3; std::vector<int> usedNumbers(n*n); std::vector<std::vector<int
谢谢假设您对生成的随机数没有任何限制,下面是一个填充然后打印2D矢量数组的示例:
int n = 3;
std::vector<int> usedNumbers(n*n);
std::vector<std::vector<int>> vec(n);
for (int i = 0; i < n; i++)
{
vec[i].resize(n);
for (int j = 0; j < n; j++)
{
int randNum;
while (std::find(usedNumbers.begin(), usedNumbers.end(), randNum = rand()) != usedNumbers.end()){}
usedNumbers.push_back(randNum);
vec[i][j] = randNum;
}
}
// print the 2 dimentional vector
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
std::cout << "i:" << i << " j:" << j << " vec: " << vec[i][j] << std::endl;
int n=3;
std::使用的向量数(n*n);
std::vec(n);
对于(int i=0;i 你的问题不清楚。是否要将n-2
值分配给2D数组中的每个元素?srand()
仅在具有随机数时使用,实际上不用于分配数字(rand()
用于此),只是为随机数生成器设定种子。是否要使用从1到nn的所有数字的随机排列填充数组,以便从1到nn的每个数字只使用一次?如果我的答案对您有帮助,请帮助我接受它(单击空复选标记)。谢谢:)