(如果我的问题是愚蠢的,那是因为我是个学生)
在我的程序中,当我声明我的大向量时,我得到 "堆栈溢出"。
cin >> big_number;
vector<int> my_vector[big_number];
**堆栈溢出** ...(笔记在上面的例子中,big_number可以取值到1.000.000)
在我的理解中,这是因为可变大小的向量被放置在堆栈上(而不是默认的堆)。
我怎样才能把这个二维向量放在堆上?把用户定义的向量放在堆上是 "不好的做法 "吗?
你应该使用 vector<vector<int>>
代码会是这样的
std::cin >> big_number;
std::vector<std::vector<int>> my_vector(big_number);
这将创建一个 vector
含有 big_number
空的 vector<int>