使用用户输入c ++创建n个不同的向量

时间:2017-08-23 01:14:11

标签: c++

我试图创建N个不同的向量,其中N将是用户值。

我试过这样的事情

for(int i=0;i<N;i++)
        vector<int> v[i];

然而,当我尝试使用矢量时,我会得到像这样的错误

  

错误:未在此范围内声明'v'

我认为我创建的向量在该循环的范围内,我可能需要在外部声明它们,但如果我这样做,我如何迭代并创建n个不同的向量?

如何实现这一解决方案,是否可以实现?

1 个答案:

答案 0 :(得分:2)

需要注意几点。

std::vector有一个push_back()方法,可以将您的向量定义为。因此,如果您vector<int>然后push_back(would_take_an_int_here)

您可以在此处阅读向量及其属性:

http://en.cppreference.com/w/cpp/container/vector

就您所寻找的内容而言,请参考上面的示例并让它展开。

所以你想要一个向量的向量?这意味着push_back(needs_to_take_a_vector)

让我们从技术代码段开始:

//First we define the vector

vector<int> x; //this is a vector of integers

vector<vector<int>> x; //this is a vector of integer vectors

//Now we want to let the user enter the amount of vectors needed.   
//We would probably want a for-loop, because it is a count based loop and we    
//know exactly how much the user wants to enter.

for(int i = 0; i < user_input; i++) {
    vector<int> my_vec;
    //This allows the vector<int> to be populated
    //before being pushed back to x, not necessary though.
    my_vec.push_back(i);
    x.push_back(my_vec);
}

在循环之后我会尝试做一件巧妙的事情,只是为了看看你是否确实在你的向量中实现了你想要的东西,是这样的:

//notice there is a .size() function for vectors to see how many elements are 
//inside the vector.
std::cout << "My user asked for " << user_input << " vectors, and my vectors size is " << my_vec.size() << " elements big" << endl;

我希望其中一些内容可以解释某些部分并且超出您想要的范围,这样您就可以理解!