bitset最大可以支持多少位?
我现在可能明白怎么回事勒,编译器默认开的控件可能不够,我这至少需要1M多空间,
请问怎么样才能设置更大的空间
谢谢
默认的参数是size_t,那就应该不超过它的上限就行啊,我用
typedef bitset<10000000> final 就不行勒,这是为什么啊,编译错误是stack over flow
下面是我的所有代码:
其它部分我已经排错勒,就是将一千万改成一百万就没问题勒,挺奇怪的
#include <bitset>
#include <iostream>
#include <string>
#include <fstream>
#include "timer.h"
using namespace std;
typedef bitset<10000000> container;
void open_file(ifstream &in,const string &file_name);
void read_file(container &initial,ifstream &in);
void write_file(container &f,ofstream &file);
int main(int argc, char* argv[])
{
//cout << numeric_limits<size_t>::max() <<endl;
Timer t;
t.begin();
container initial;
ifstream in;
open_file(in,"c:\\initial.txt");
read_file(initial,in);
in.close();
ofstream out("c:\\result.txt");
write_file(initial,out);
out.close();
cout << t.escape() << endl;
return 0;
}
void open_file(ifstream &in,const string &file_name){
in.close();
in.clear();
in.open(file_name.c_str(),ios_base::out);
}
void read_file(container &initial,ifstream &in){
string temp;
while(getline(in,temp)){
initial.set(atoi(temp.c_str()));
}
}
void write_file(container &result,ofstream &out){
for(size_t i = 0; i != result.size(); ++ i){
if(result.at(i))
out << i << '\n';
}
}