Могу ли я инициализировать размер (и строку и столбец) вектора векторов в объявлении функции в c ++? - PullRequest
3 голосов
/ 07 октября 2019

Например:

void fillVector(std::vector<<std::vector<int> >& grid(int row, std::vector<int(int col));

int main(){

    std::vector<<std::vector<int> > grid(4, std::vector,int>(2));
    fillVector(grid);

    return 0;
}

Это возможно, или я полностью не в курсе?

1 Ответ

0 голосов
/ 07 октября 2019

std::vector используется, когда вы не знаете размеры во время компиляции. Когда вы это сделаете, вместо этого используйте std :: array:

void fillArray(std::array<std::array<int, 2>, 4>& grid);

int main(){

    std::array<std::array<int, 2>, 4> grid={}; //initialize with zeros, like vector default constructor
    fillArray(grid);

    return 0;
}

Другое преимущество std::array заключается в том, что он не использует динамическое выделение памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...