Не дубликат C++: инициализация многомерного массива в конструкторе, поскольку все ответы < em>кажется, чтобы предположить, что границы известны во время компиляции.
Я создаю класс взвешенного неориентированного графа arraygraph
, поддерживаемый двумерным массивом int
, по имени edges[][]
. Во время создания мне все равно, что содержит edges[][]
; arraygraph
имеет метод, который считывает график из заданного имени файла, а edges
устанавливается в new int[n][n]
(где n
— количество узлов в файле) этой функцией перед его заполнением.
Проблема в том, что g++ не нравится то, как я определил edges[][]
. Он хочет установить границы для массива, а во время компиляции я не знаю этих границ. Должен ли я просто переопределить edges
как int *
? Или как edges[][0]
? Или что-то совсем другое?
Я ни в коем случае не эксперт по С++ (я вроде как парень на Python), такие сложные, тяжеловесные параметры, как те, что в Массив с неопределенным размером в качестве члена класса выходит за рамки (наверняка есть более простой способ, чем этот...). Если то, что я пытаюсь сделать, совершенно неправильно, то это также полезно знать, и было бы удобно знать, что я должен делать вместо этого.