Mega Code Archive

 
Categories / C++ Tutorial / Vector
 

Demonstrating the STL vector capacity and reserve functions

#include <iostream> #include <cassert> #include <vector> using namespace std; int main() {   int N = 10000; // size of vectors   vector<int> vector1, vector2;   for (int k = 0; k != N; ++k) {     vector<int>::size_type cap = vector1.capacity();     vector1.push_back(k);     if (vector1.capacity() != cap)       cout << "k: " << k << ", new capacity: " << vector1.capacity() << endl;   }   vector2.reserve(N);   for (int k = 0; k != N; ++k) {     vector<int>::size_type cap = vector2.capacity();     vector2.push_back(k);     if (vector2.capacity() != cap)       cout << "k: " << k << ", new capacity: " << vector2.capacity() << "\n";   }   return 0; } k: 0, new capacity: 1 k: 1, new capacity: 2 k: 2, new capacity: 4 k: 4, new capacity: 8 k: 8, new capacity: 16 k: 16, new capacity: 32 k: 32, new capacity: 64 k: 64, new capacity: 128 k: 128, new capacity: 256 k: 256, new capacity: 512 k: 512, new capacity: 1024 k: 1024, new capacity: 2048 k: 2048, new capacity: 4096 k: 4096, new capacity: 8192 k: 8192, new capacity: 16384