算法竞赛里的(堆)数组

算法竞赛里的创建(堆与栈)数组

最近对算法着迷,准备先打打算法小比赛,有时我会分享、加深某些知识印象。


以DevCpp为例
算法竞赛里经常会使用到数组,比如动态规划类的题目,动辄需要几万几十万长度的数组作为单元格存放数据。如果我只是在主函数里 int arr[100000];那么该数组会在"栈"上创建存放,而"栈"的空间大小不足以放这么大的数组。以DEVCPP为例,我的测试是最多放5万-6万的int数组,"栈"就爆炸了,更别提递归。

这时候我们就需要把数组创建在堆
堆,比栈大的多得多,完全可以容纳超长数组。堆和栈的区别不多说,创建堆数组有2种方法:

1.使用new申请创建。
new

inw* arr = new int[10000000];

2.借助static定义全局数组

//#include<iostream>
//using namespace std;
static int way[10000001][10000001];
static int v[10000001];
static int arr[10000001];

最后是成果展示 3个千万长度的数组可以运行程序
在这里插入图片描述

最后,如果读者发现上文有误,请告知我,万谢,我还需要继续学习。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值