У меня есть некоторый std :: vector, и мне нужно изменить его размер по умолчанию. Вот код:
static int Counter = 0;
class Data
{
/* ... */
Data() {
Counter++;
std::cout << Counter << std::endl;
}
};
std::vector<Data> mArray;
for (int i=0; i <= 200; ++i)
{
mArray.push_back(Data());
}
// And resizing somewhere:
std::cout << "Resizing!\n";
mArray.resize(400, Data());
Как я понимаю, после вставки 200 элементов я могу изменить его размер с помощью функции resize
, которая принимает новый размер и значение по умолчанию для каждого нового элемента.
Когда я запускаю эту программу, я вижу:
0
1
2
...
199
200
Resizing
201
Почему после изменения размера вставляется только 1 элемент?