当我尝试调整列表大小时,程序崩溃了......看看那段代码,尝试输入1,000,000,000(10 ^ 9)...在我的Windows 7 x64上无法正常工作。
#include <cstdlib>
#include <iostream>
#include <list>
using namespace std;
int main(int argc, char *argv[])
{
list<long long> l;
long long n;
cin>>n;
cout<<l.max_size()<<endl;
//uncomment 1 or 2
//l.resize(n,l.size()+1); //1st try
/*for (long long i=0; i<n; i++) //2nd try
l.push_back(n);*/
//system("PAUSE"); // uncomment if needed
return 0;
}
最大尺寸超过4 * 10 ^ 9,但仍然不起作用...我使用的是最新的MinGW(G ++)
答案 0 :(得分:12)
由于“可用内存”是一个稍微变幻无常的概念,l.max_size()
会返回最大硬盘。你的“崩溃”很可能是一个未被捕获的std::bad_alloc
,你在内存不足时会发现它。