Итак, у меня есть следующее:
std::vector< std::vector <int> > fog;
и я инициализирую его очень наивно:
for(int i=0; i<A_NUMBER; i++)
{
std::vector <int> fogRow;
for(int j=0; j<OTHER_NUMBER; j++)
{
fogRow.push_back( 0 );
}
fog.push_back(fogRow);
}
И это очень неправильно ... Есть ли другой способ инициализировать такой вектор?
std::vector<int>::max_size()
. ЗдесьОтветы:
Используйте
std::vector::vector(count, value)
конструктор, который принимает начальный размер и значение по умолчанию:Если,
4
например, требовалось значение по умолчанию, отличное от нуля, то:Я также должен упомянуть, что в C ++ 11 была введена единообразная инициализация, которая позволяет инициализировать
vector
и другие контейнеры, используя{}
:источник
std :: vector <std :: vector <int>>
asstatic
?Допустим, вы хотите инициализировать 2D-вектор m * n с начальным значением 0
мы могли бы сделать это
источник
std::
делает его длиннее, и людям может понравиться короткий и прямой ответ; 3) длинное название переменной смущает новичков. Я тоже новичок, не знаю, насколько важны нам нужныstd::
, нужен работающий код, поэтому я знаю, что делает каждая переменнаяВ нем нет
append
методаstd::vector
, но если вы хотите создать вектор, содержащийA_NUMBER
векторыint
, каждый из которых содержитother_number
нули, вы можете сделать это:источник
Общий синтаксис, как уже было показано, следующий:
Здесь вектор 'v' можно визуализировать как двумерный массив с 'A_NUMBER' строк и 'OTHER_NUMBER' столбцов с их начальным значением, установленным на 'DEFAULT_VALUE'.
Также это можно записать так:
Ввод значений в двумерный вектор аналогичен вводу значений в двумерный массив:
Примеры уже приводились в других ответах ....!
источник
Я думаю, что самый простой способ сделать это:
10 - это размер внешнего или глобального вектора, который является основным, а 11 - это размер внутреннего вектора типа int, а начальные значения инициализируются равными 100! Это моя первая помощь в стеке, думаю, это кому-то поможет.
источник
Предположим , вы хотите инициализировать двумерный целочисленный вектор с п строками и т столбце каждая из которых имеет значение « VAL »
Напишите это как
Этот VAL может быть переменной целочисленного типа или константой, например 100.
источник
Рекомендуемый подход - использовать конструктор заливки для инициализации двумерного вектора с заданным значением по умолчанию:
где M и N - размеры вашего 2D-вектора.
источник
Мой
c++ STL
код инициализирует5*3 2-D vector
сzero
источник