当我尝试调整列表大小时程序崩溃...看看那个代码,尝试输入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;
}
Run Code Online (Sandbox Code Playgroud)
最大尺寸超过4*10 ^ 9,但仍然无法工作...我使用最新的MinGW(G ++)
MSa*_*ers 12
由于"可用内存"是一个稍微变幻无常的概念,因此l.max_size()返回最大硬盘.你的"崩溃"很可能是未被捕获的std::bad_alloc,你在内存不足时会发现这种情况.