Бросок std bad_alloc даже после изменения размера 2D вектора
У меня есть следующий код:
struct elements
{
char status;
int value;
};
class matrix
{
vector<vector <elements> > mat;
int varNum;
int ConNum;
public:
void resetmatrix(int varnum, int connum)
{
varNum = varnum;
ConNum = connum;
mat.resize(connum, vector<elements>(varnum) );
}
matrix(int x, int y)
{
varNum = 0;
ConNum = 0;
}
};
matrix mat(0,0);
int main(int argc, char *argv[]) //main function
{
int variables,cubes;
variables=25;
cubes= 10000000;
cout<<"Variables= "<<variables<<endl<<"Cubes= "<<cubes<<endl;
mat.resetmatrix(variables, cubes);
cout<<"hello";
return 0;
}
Я получаю следующую ошибку
Я думал, что этот тип ошибки происходит только тогда, когда вы не изменили свой вектор. Но я изменяю размеры. Может кто-нибудь сказать мне, почему это происходит? потому что стоимость кубиков очень высока (10 миллионов)?