利用STL解决二维数组过大内存溢出问题

本文探讨了在程序中遇到内存不足时的几种解决方案,包括在主函数外定义数组、使用Vector容器以及利用map容器替代传统二维数组的方法,特别介绍了map容器在处理大量数据时的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天写一个程序,内存空间不够用,要开二维数组一直报错,后来查阅了一些资料总结了几种方法,在这里记录分享一下

 

1. 如果你的程序没有内存限制,那你可以把数组定义在主函数外,用这个办法的话,数组最大可以定义到大概

 test[10720][100000]这么大

2.如果程序有内存限制可以用Vector容器代替数组,当然Vector是不可能真正的代替二维数组的,使用Vector会削去很大一部分功能

 

3.下面这个我觉得比较好用限制又小的是map容器代替数组

举个栗子

test[12][13] = num;

我们可以用一个map<int,int>test_map这样的容器,把map[1213] = num;

这样只要你的二维数组个数大小在整型范围内就可以使用map容器,或者更进一步,你需要更大的数组,可以考虑把 ’1213‘转换成字符串的形式,然后用map<string,int>test_map保存数组

总之时间和空间不可兼得,如有错误还请留言批评指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值