Оставшаяся память перед перераспределением вектора С++C++

Программы на C++. Форум разработчиков
Anonymous
Оставшаяся память перед перераспределением вектора С++

Сообщение Anonymous »

Предположим, я использую вектор типа int a:

Код: Выделить всё

vector a {1, 2, 34, 1222, 0};
Затем я хочу вернуть некоторые данные следующим образом:

Код: Выделить всё

a.push_back(data);
Однако моей программе приходится добавлять много данных в мой вектор.
Я изучаю C++ по книге. В книге говорится: «Для добавления элемента иногда может потребоваться выделение дополнительного хранилища. В этом случае каждый элемент должен быть перемещен в новое хранилище», C++ Ressources Network добавляет, что «это относительно дорогая задача с точки зрения времени обработки». Я также нашел статью на эту тему.
Однако моя программа должна быть очень быстрой. Значит, я не могу справиться с этим «перераспределением» своего вектора. Фактически размер моего вектора может превышать 1 ГБ памяти.

Мой вопрос довольно прост:
Как я могу узнать оставшуюся память перед перераспределением моего огромного вектора?

Примечание: Я не знаю окончательный размер моего вектора, поэтому не могу его инициализировать, сохранив необходимую память.
Скажите мне если у вас есть вопросы или комментарии.

Подробнее здесь: https://stackoverflow.com/questions/499 ... g-vector-c

Вернуться в «C++»