【问题标题】:assigning values to vectors of vectors为向量的向量赋值
【发布时间】:2014-03-02 23:23:43
【问题描述】:

我创建了一个向量向量或大小为 n x n 的二维数组。我想为这个向量的每个位置分配一些 n-2 值,例如 grid[1][2]=3 并且值 3 不应该与仅向量中的其他位置相同 grid[1][2]应该有值 3。 有人可以帮我写代码吗,我们也可以使用 srand 函数来做到这一点吗? 谢谢

【问题讨论】:

  • 你的问题不清楚。是否要将 n-2 值分配给二维数组中的 每个 元素?
  • srand() 仅在您有随机数时使用,实际上并不用于分配数字(rand() 用于此),只是为随机数生成器播种。
  • 你想用从 1 到 nn 的所有数字的随机排列来填充数组,因此从 1 到 nn 的每个数字只使用一次吗?

标签: c++ arrays vector 2d


【解决方案1】:

假设您对生成的随机数没有任何限制,下面是一个填充然后打印二维向量数组的示例:

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;

此参考代码还假设随机数在整个二维数组中应该是唯一的。

您可以使用 rand() 函数来反映您想要的最大数字(例如,随机数 x 应该在 0 random .

【讨论】:

  • 如果我的回答对您有帮助,请通过接受它来帮助我(单击空白复选标记)。谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
  • 2020-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多