Инициализация 2d вектора в переполнении стека

Я знаю, что вы можете инициализировать 1d вектор с некоторым значением следующим образом:

vector<int> vec(10, 100); //creates a vector of size 10 and each element = 100

Теперь я хотел бы сделать то же самое с 2d вектором. Я знаю, что следующее выдаст ошибку, потому что размер столбцов не указан:

vector<vector<int> > vec(10, 100);

Так есть ли способ сделать это? Кроме того, я хочу сохранить размер столбца одинаковым для каждого вектора в двумерном векторе (то есть сетке nxn).

Или, может быть, я могу использовать функцию «std :: fill ()» для этого? И можно ли расширить эту функциональность до сетки nxm?

3

Решение

vector<vector<int>> vec(10, vector<int>(10, 100));
//       n              m   value

Это создаст вектор из 10 векторов размером 10 и с элементами, инициализированными до 100.

7

Другие решения

Других решений пока нет …