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

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

 

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

 test[10720][100000]这么大

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

 

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

举个栗子

test[12][13] = num;

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

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

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

你可能感兴趣的:(字符串,数据结构)