C++: std::vector::reserve не резервирует, если содержит указатели

Когда я вызываю std::vector::reserve, когда идентификатор имеет тип std::vectorbackup(...)ничего не делает:

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:ПОЧЕМУ?

7
задан Casey 3 April 2012 в 00:25
поделиться