C++ 为向量的向量赋值

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

我已经创建了一个向量向量或大小为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>> 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的每个数字只使用一次?如果我的答案对您有帮助,请帮助我接受它(单击空复选标记)。谢谢:)