Инициализация и уничтожение 2D вектора в C ++ - PullRequest
2 голосов
/ 22 октября 2011

Пожалуйста, у меня есть два вопроса относительно векторов в C ++:

  1. Как исправить проблему в следующем коде:

    • Inмой файл заголовка у меня есть:

      vector< vector< char > > vec;
      
    • В моем (.cpp) файле в определении конструктора у меня есть:

      vec(20, vector<char>(25, " "));
      
    • Я получаю следующую ошибку:

      error: invalid conversion from 'const char*' to 'char'
      

    Я знаю, что что-то не так, но не знаю, как это исправить.

  2. После окончания моей программы, как мне правильно уничтожить мой двумерный вектор, чтобы освободить память?

Любые предложения,идеи или решения моих вопросов очень ценятся.

1 Ответ

2 голосов
/ 22 октября 2011

Возможно, вам нужны одинарные кавычки ' ':

vec(20, vector(25, ' '));

В противном случае вы передаете строку " ", которая вызывает эту ошибку.

Что касается вашего второго вопроса,Вам не нужно уничтожать это.Он автоматически освободится, когда выпадет из области видимости.

РЕДАКТИРОВАТЬ:

Вы также должны сделать это вместе:

vector< vector< char > > vec(20, vector<char>(25, ' '));

Вы не можете отделить объявлениеи инициализатор, как это.(по крайней мере, без дополнительного задания.)

...