Бросок 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 миллионов)?

0 ответов

Другие вопросы по тегам