首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

想声明一个有相当多数据的数组该如何做呢

2012-02-12 
想声明一个有相当多数据的数组该怎么做呢?要求一维数组,元素个数可能在100万甚至1000万以上,元素类型就当

想声明一个有相当多数据的数组该怎么做呢?
要求一维数组,元素个数可能在100万甚至1000万以上,元素类型就当是int型吧,占4个字节。
但是我看好像只能申请到25万以上,30万都不行,这该怎么办呢?

[解决办法]
std::vector 可以

#include <vector>
#include <stdio.h>

int main(int argc, char * argv[])
{
std::vector <int> vecLarge;

printf( "max_size = %d\n ", vecLarge.max_size());
printf( "size = %d\n ", vecLarge.size());

vecLarge.resize(10000000); // 1000万
printf( "size = %d\n ", vecLarge.size());

system( "PAUSE ");
return 0;
}
[解决办法]
用这么多数据作比较,肯定是你算法不行吧,太多的话作抽样调查不行啊
[解决办法]
用malloc吧 ,在堆里申请可以的,栈的大小是有限制的,所以会出错
[解决办法]
1, 空间应该是能开出来的,lz用的是VC++吗?那个好像默认堆是1M大小的。
2, 千万别听楼上用vector, 否则可能死得很惨.
[解决办法]
不知道使用vector效率上会怎么样?
你在栈上面开肯定是不行的,
还是在堆上分配,40多M肯定没有问题,用C++的话还是用new不要用malloc了吧。
[解决办法]
用vector,
size_t为long类型

热点排行