【问题标题】:C++ : Allocate a big variable-sized 2d-vector on the heapC++:在堆上分配一个大的可变大小的二维向量
【发布时间】:2020-08-17 09:53:00
【问题描述】:

(如果我的问题很愚蠢,那是因为我是学生)

在我的程序中,当我声明我的大向量时,我得到“堆栈溢出”

   cin >> big_number;
   vector<int> my_vector[big_number];

** 堆栈溢出** ... (注意:在上面的示例中,big_number 可以取值高达 1.000.000)

在我的理解中,这是因为可变大小的向量被放置在堆栈上(而不是默认堆)。

我怎样才能把这个二维向量放在堆上? 将用户定义的向量放在堆上是“不好的做法”吗?

【问题讨论】:

    标签: c++ vector stack-overflow heap-memory dynamic-memory-allocation


    【解决方案1】:

    你应该使用vector&lt;vector&lt;int&gt;&gt;

    代码看起来像

    std::cin >> big_number;
    std::vector<std::vector<int>> my_vector(big_number);
    

    这将创建一个包含big_numbervectorvector&lt;int&gt;

    【讨论】:

      猜你喜欢
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 2017-05-10
      • 1970-01-01
      • 2017-08-03
      • 2018-06-29
      相关资源
      最近更新 更多