Как назначить строку для вектора (как в куче) - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь получить примерно 3 миллиона строк из файла в вектор.Я выделил это так:

vector<string> *slownikds = new vector<string>;

И когда я пытаюсь отодвинуться от файла следующим образом:

string *line;   
while (getline(slownik, *line))
    {
            *slownikds->push_back(*line);
    }

Это не работает.Как отодвинуть строки из файла "slownik"?

1 Ответ

0 голосов
/ 18 декабря 2018

Пожалуйста, остановите это.

std::vector создано, чтобы вам не приходилось выделять память для контейнера самостоятельно.std::string есть, чтобы вам не приходилось использовать char * или прибегать к использованию буферов фиксированного размера.

Пожалуйста, исправьте:

std::vector<string> slownikds;
std::string line;   
while (getline(slownik, line)) {
    slownikds.push_back(line);
}

Причина, по которой выполучение «ошибки» может быть одним из трех:

  1. Вы не инициализировали *line, поэтому он указывает на неинициализированную память или, возможно, NULL
  2. пытаясь получить доступ к функции-члену push_back через оператор доступа к элементу-указателю
  3. что-то foobar

В любом случае не с использованием указателей, как я делал выше,это ответ

...