Когда я звоню std::vector::reserve
, когда идентификатор имеет тип std::vector<Foo*>
reserve(...)
, ничего не делает:
std::vector<int*> bar;
bar.reserve(20);
//I expect bar.size to return 20...
std::size_t sz = bar.size();
for(std::size_t i = 0; i < sz; ++i) {
//Do Stuff to all items!
}
Вышеупомянутый цикл for
выполняется ровно ноль раз, а bar.size () возвращает ноль. Я не помню, верно ли это для всех других контейнеров STL, но если это так, включая поведение для std :: vector: ПОЧЕМУ?