0

Как инициализировать вектор векторов в структуре?

31

Я столкнулся с проблемой и не могу разобраться, как инициализировать матрицу NxN в C++ с использованием векторов векторов. Я пытаюсь создать матрицу, объявив ее следующим образом:

vector<vector<int>> A;

Но как правильно инициализировать её размер? Я пробовал разные варианты, но неудачно. Например, это не сработало:

A = new vector(dimension);

И такой вариант тоже не сработал:

A = new vector(dimension, vector<int>(dimension));

Можете подсказать, как правильно инициализировать вектор векторов фиксированного размера?

2 ответ(ов)

1

В C++ вы используете new для выполнения динамического выделения памяти. Он возвращает указатель на динамически выделенный объект.

В вашем случае нет необходимости использовать new, поскольку A является локальной (автоматической) переменной. Вы можете просто инициализировать A с помощью конструктора:

vector<vector<int>> A(dimension, vector<int>(dimension));

Это создаст A как объект на стеке, что предпочтительнее в большинстве случаев, так как освобождение памяти произойдет автоматически при выходе из области видимости.

0

Конечно, вот перевод с учетом стиля ответа на StackOverflow.com:

#include <vector>

// ...

std::vector<std::vector<int>> A(размерность, std::vector<int>(размерность));

Обратите внимание, что размерность — это переменная, указывающая на размер двумерного вектора.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь