У меня проблема с std :: fill
.Заполнить двумерный массив объектов C++
Сначала я определяю двумерный массив пар.
const int NMAX = 13;
typedef pair<int, set<int>> solution;
solution memo[NMAX][NMAX];
Я предполагаю, что на этом этапе мой массив инициализируется конструктором пары по умолчанию. Затем я хотел бы инициализировать этот массив, не полагаясь на вложенный цикл. Что я делаю так:
solution s;
s.first = -1;
std::fill(&memo[0][0], &memo[0][0] + sizeof(memo), s);
Но я получаю ошибку в автобусе ... Что я делаю неправильно?
_theolution memo [NMAX] [NMAX]; '_ why not' vector> memo; 'вместо этого? Также 'array , MAX> memo;' должно быть в порядке. –
'sizeof' - это не количество элементов, а количество символов (байтов). –
@ πάνταῥεῖ Не то же самое. Данные в векторе векторов не смежны. – juanchopanza