我试图创建N个不同的向量,其中N将是用户值。
我试过这样的事情
for(int i=0;i<N;i++)
vector<int> v[i];
然而,当我尝试使用矢量时,我会得到像这样的错误
错误:未在此范围内声明'v'
我认为我创建的向量在该循环的范围内,我可能需要在外部声明它们,但如果我这样做,我如何迭代并创建n个不同的向量?
如何实现这一解决方案,是否可以实现?
答案 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;
我希望其中一些内容可以解释某些部分并且超出您想要的范围,这样您就可以理解!