экземпляр std :: vector foo (1000)
.
foo.size ()
теперь равно 1000 и foo.capacity ()
также равно 1000.
Если я очищу вектор с помощью foo.clear ()
, размер size ()
теперь равен 0, но какова емкость ( )
?Об этом говорится в стандарте?
Чтобы очистить вектор и использовать как можно меньшую емкость, используйте трюк подкачки:
std::vector<T>().swap(foo);
Это создает пустой вектор, заменяет его внутренние компоненты на foo
, а затем уничтожает временный вектор, избавиться от элементов, которые когда-то принадлежали foo
и оставить foo
, как будто он был недавно создан.