fork download
  1.  
  2. #include <vector>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6. using MyVec = std::vector<unsigned>;
  7.  
  8. int main()
  9. {
  10. MyVec vec;
  11. unsigned count = 32;
  12. auto last = vec.capacity();
  13.  
  14. while (count-- && (last < vec.max_size()))
  15. {
  16. auto sz = last;
  17. cout << sz * sizeof(MyVec::value_type) << " bytes allocated (diff ";
  18. vec.resize(sz + 1);
  19. last = vec.capacity();
  20. cout << (last - sz) * sizeof(MyVec::value_type) << ')' << endl;
  21. }
  22.  
  23. return 0;
  24. }
  25.  
Success #stdin #stdout 0s 3428KB
stdin
Standard input is empty
stdout
0 bytes allocated (diff 4)
4 bytes allocated (diff 4)
8 bytes allocated (diff 8)
16 bytes allocated (diff 8)
24 bytes allocated (diff 16)
40 bytes allocated (diff 16)
56 bytes allocated (diff 32)
88 bytes allocated (diff 32)
120 bytes allocated (diff 64)
184 bytes allocated (diff 64)
248 bytes allocated (diff 128)
376 bytes allocated (diff 128)
504 bytes allocated (diff 256)
760 bytes allocated (diff 256)
1016 bytes allocated (diff 512)
1528 bytes allocated (diff 512)
2040 bytes allocated (diff 1024)
3064 bytes allocated (diff 1024)
4088 bytes allocated (diff 2048)
6136 bytes allocated (diff 2048)
8184 bytes allocated (diff 4096)
12280 bytes allocated (diff 4096)
16376 bytes allocated (diff 8192)
24568 bytes allocated (diff 8192)
32760 bytes allocated (diff 16384)
49144 bytes allocated (diff 16384)
65528 bytes allocated (diff 32768)
98296 bytes allocated (diff 32768)
131064 bytes allocated (diff 65536)
196600 bytes allocated (diff 65536)
262136 bytes allocated (diff 131072)
393208 bytes allocated (diff 131072)