Назад к вопросамЧто хранят векторы
JuniorТеорияЧасто
Что хранят векторы a и b после reserve(5) и resize(5)?
#include <vector>
int main() {
std::vector<int> a;
a.reserve(5);
std::vector<int> b;
b.resize(5);
}a пуст, но вмещает не меньше 5 элементов; в b пять нулей
- Ждать, что
reserveсоздаст элементы: он только выделяет память, поэтомуa.size()остаётся0, и дажеa[0]выходит за пределы вектора. - Ждать, что
resizeтолько выделит память: он делаетb.size()равным5и добавляет элементы со значением0, как уint x{}.
- Зачем вызывать
reserveперед циклом, который добавляет известное число элементов черезpush_back? - Что затем сделает с
bвызовb.resize(2)?