Влияет ли очистка вектора на его емкость?

экземпляр std :: vector foo (1000) .

foo.size () теперь равно 1000 и foo.capacity () также равно 1000.

Если я очищу вектор с помощью foo.clear () , размер size () теперь равен 0, но какова емкость ( ) ?Об этом говорится в стандарте?

24
задан Alan Turing 30 July 2011 в 11:24
поделиться

1 ответ

Чтобы очистить вектор и использовать как можно меньшую емкость, используйте трюк подкачки:

std::vector<T>().swap(foo);

Это создает пустой вектор, заменяет его внутренние компоненты на foo, а затем уничтожает временный вектор, избавиться от элементов, которые когда-то принадлежали foo и оставить foo, как будто он был недавно создан.

5
ответ дан 28 November 2019 в 23:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: