Originariamente inviato da RooccoXXI
Questo è il mio programma; compila ma non funziona...
Hai l * c crash, vero?

Credo di non aver capito bene come funzionano i vector di vector (i vettori a una dimensione li so usare!).
Grosso modo come gli array di array, con la minima differenza che i vector ne semplificano la gestione. In ambedue i casi, però, per usare l'operatore[] DEVI specificare una dimensione prima.
In read_Matrix() tu non specifici ne la dimensione del vector esterno ne quella del vector interno (che in questo caso è superflua).

codice:
Matrix read_Matrix()
{
    int l(0), c(0);
    double d(0);
    Matrix M;
    
    cout << "Matrix dimension: ";
    cin >> l >> c;
    
    M.resize(l);

    for(int i(0); i < l; i++)
    {
        for(int j(0); j < c; j++)
        {

            cout << "M_" << i << "_" << j << ": ";
            cin >> d;
            M[i].resize(c);
            M[i][j] = d;
            // o in alternativa
            M[i].push_back(d);
        }
    }
 
    return M;
}