Да, знаю.
В контексте стандартных контейнеров C++ (например, std::vector) методы resize и reserve используются для управления размером и емкостью контейнера:
reserve(n): Запрашивает, чтобы емкость вектора была не меньше, чем n. Если n больше текущей емкости, выделяется новое хранилище, и элементы перемещаются туда. Емкость может увеличиться, но размер вектора (количество элементов) не меняется. reserve используется для избежания многократных перевыделений памяти при добавлении элементов.
c
resize(n): Изменяет размер вектора до n.
n меньше текущего размера, элементы после n-го удаляются.n больше текущего размера:
resize(n, value), новые элементы инициализируются значением value.resize(n), новые элементы инициализируются значением по умолчанию для типа элемента (путем вызова конструктора по умолчанию).c
Ключевые отличия:
reserve(n) | resize(n) / resize(n, value) | |
|---|---|---|
| Что меняет | Емкость (capacity) | Размер (size) |
| Кол-во элементов | Не меняется | Изменяется до n |
| Инициализация | Не происходит | Новые элементы инициализируются (по умолчанию или указанным value) |
| Перевыделение | Может произойти для достижения емкости n | Может произойти для достижения размера n |