#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