Jak zdefiniować tablicę 2D w C ++ i STL bez manipulacji pamięcią?

Istnieje kilka sposobów definiowania tablicy 2D w C ++ i STL bez manipulacji pamięcią, a poniższe kody ilustrują dwie różne metody:

int main () 
{
    /**************
        1   2   3
        4   5   6
    ***************/
    // Method 1
    const int ROW = 2;
    const int COL = 3;
    int array1[ROW][COL];
    for(int i=0; i<ROW; i++)
        for(int j=0; j<COL; j++)
            array1[i][j] = i*COL+j+1;

    // Method 2
    typedef vector<vector<int> > ARRAY; 
    ARRAY array2;
    vector<int> rowvector;
    for(int i=0; i<ROW; i++)
    {
        rowvector.clear();
        for(int j=0; j<COL; j++)
            rowvector.push_back(i*COL+j+1);
        array2.push_back(rowvector);
    }
    return 0;
}

Moje pytanie brzmi: czy istnieją inne sposoby definiowania tablicy 2D? Który jest najbardziej wydajny? Dzięki!

questionAnswers(7)

yourAnswerToTheQuestion