fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <chrono>
  4.  
  5. void build(std::vector<double>& data, const size_t size){
  6. const auto start{std::chrono::system_clock::now()};
  7. void* ptr{data.data()};
  8. for(size_t i{1};i<=size;++i){
  9. data.push_back((std::chrono::system_clock::now()-start).count());
  10. if(data.data()!=ptr){
  11. ptr=data.data();
  12. std::cout << i << ' ' << ptr << ' ' << data.capacity() << std::endl;
  13. }
  14. }
  15. }
  16.  
  17. int main() {
  18. size_t size{100000000L};
  19.  
  20. std::cout << ((size*sizeof(double))/1024/1024) << " MiB" << std::endl;
  21.  
  22. std::vector<double> data{};
  23.  
  24. build(data,size);
  25.  
  26. double sum{0};
  27. for(auto curr : data){
  28. sum+=curr;
  29. }
  30. std::cout << sum << std::endl;
  31. return 0;
  32. }
Success #stdin #stdout 2.77s 1051756KB
stdin
Standard input is empty
stdout
762 MiB
1 0x5630248f9e80 1
2 0x5630248f9ea0 2
3 0x5630248f9ec0 4
5 0x5630248f9ef0 8
9 0x5630248f9f40 16
17 0x5630248f9fd0 32
33 0x5630248fa0e0 64
65 0x5630248fa2f0 128
129 0x5630248fa700 256
257 0x5630248faf10 512
513 0x5630248fbf20 1024
1025 0x5630248fdf30 2048
2049 0x563024901f40 4096
4097 0x563024909f50 8192
8193 0x2b84f5f2f010 16384
16385 0x2b84f5f50010 32768
32769 0x2b84f5f91010 65536
65537 0x2b84f6012010 131072
131073 0x2b84f6113010 262144
262145 0x2b84f6314010 524288
524289 0x2b84f6715010 1048576
1048577 0x2b84f6f16010 2097152
2097153 0x2b84f7f17010 4194304
4194305 0x2b84f9f18010 8388608
8388609 0x2b84fdf19010 16777216
16777217 0x2b8505f1a010 33554432
33554433 0x2b8515f1b010 67108864
67108865 0x2b8535f1c010 134217728
1.35271e+17