用随机数填充多个向量

时间:2015-11-18 16:10:03

标签: c++ c++11 vector

这里的目标是创建一个向量向量,每个向量包含不同大小的向量,即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&amp;)'

在下一行显示

时出现错误
  

错误:没有匹配函数来调用'std :: vector :: push_back(std :: vector&amp;)'

我只是需要一些帮助来试图弄清楚如何解决这些错误。我用谷歌搜索了错误信息,但没有真正有用。

1 个答案:

答案 0 :(得分:5)

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

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

应该是

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

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

vector<int> vectorList;

应该是

vector<vector<int>> vectorList;

编译器告诉你:你说vectorListint的向量,但是如果你仔细阅读了错误信息,它说你试图用push_back来调用std::vector&

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