Как зарезервировать 2-мерный вектор с парой - PullRequest
1 голос
/ 01 июня 2019

Я хочу получить прямой доступ к двумерному векторному индексу.

, но я не знаю, как зарезервировать

vector<pair<<vector<int>, int>>..   

что мне делать?

           vector<pair<vector<int>, int>> c_list;

           vector<int> population;

           population.push_back(1);
           population.push_back(2);
           population.push_back(3);

           c_list[0].first = population;

вектор вне диапазона

1 Ответ

1 голос
/ 01 июня 2019

Как указано в комментариях, reserve только изменяет емкость вектора, но не размер. Это может улучшить производительность для больших vector с, потому что многие push_back с могут привести к внутренним resize операциям в vector с несколькими выделениями и освобождениями, которые могут занимать время.

В вашем примере просто позвоните c_list.resize(1); до c_list[0].first = population;, и все будет в порядке. resize действительно сразу меняет размер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...