用随机数填充多个向量

Filling multiple vector with random numbers

本文关键字:向量 填充 随机数      更新时间:2023-10-16

这里的目标是创建一个向量的向量,每个向量包含一个不同大小的向量,即100、200、400、800、1600、3200、6400和12800。这是我的代码:

void vectorGenerator() {
    int i;
    vector<int> vectorList;
    for (unsigned int j = 0; j < 8; j++) {
        vector<int> temp(100*pow(2,i));
        for (unsigned int l = 0; l<temp.size(); l++)
            temp(l) = (rand() % 20000);
        vectorList.push_back(temp);
    }

我收到的错误来自以下线路:

temp(l) = (rand() % 20000);

我收到的错误信息是

错误:对"(std::vector)(unsigned int&)"的调用不匹配

下一行也出现错误,上面写着

错误:没有用于调用"std::vector::push_back(std::vector&)"的匹配函数

我只是需要一些帮助来找出如何修复这些错误。我在谷歌上搜索了错误消息,但没有任何效果。

首先,使用数组表示法访问向量的元素,即使用方括号。这意味着

temp(l) = (rand() % 20000);

应该是

temp[l] = (rand() % 20000);

此外,你说你想要一个向量的向量,所以你应该把vectorList声明为一个:

vector<int> vectorList;

应该是

vector<vector<int>> vectorList;

编译器告诉您:您说过vectorListints的向量,但如果您仔细阅读错误消息,它会说您正试图用std::vector&调用push_back

最后,你似乎没有对结果做任何事情。。。你的意思是让函数返回一个值吗?