fork(1) download
  1. //#pragma GCC optimize ("O3")
  2. //#pragma GCC target ("avx")
  3. #include "bits/stdc++.h" // define macro "/D__MAI"
  4.  
  5. using namespace std;
  6. typedef long long int ll;
  7.  
  8. #define ALL(v) (v).begin(),(v).end()
  9. #define repeat(cnt,l) for(auto cnt=0ll;cnt<(l);++cnt)
  10. #define iterate(cnt,b,e) for(auto cnt=(b);cnt!=(e);++cnt)
  11.  
  12.  
  13. #define TIME chrono::system_clock::now()
  14. #define MILLISEC(t) (chrono::duration_cast<chrono::milliseconds>(t).count())
  15.  
  16. namespace {
  17. auto my_nice_timer = TIME;
  18. void tic(){ my_nice_timer = TIME; }
  19. void toc(){ printf("[%lld msec]\n", MILLISEC(TIME-my_nice_timer)); }
  20. }
  21.  
  22. struct MassiveStruct{
  23. int my_nice_member[10000];
  24. };
  25.  
  26. struct HugeStruct{
  27. int my_nice_member[10000];
  28. HugeStruct(){
  29. fill(my_nice_member, my_nice_member+10000, 11451);
  30. }
  31. };
  32.  
  33. int main() {
  34. {
  35. tic();
  36. vector<int> v;
  37. repeat(i, 8000000){ v.push_back(i); }
  38. toc();
  39. }
  40. {
  41. tic();
  42. vector<int> v;
  43. v.reserve(8000010);
  44. repeat(i, 8000000){ v.push_back(i); }
  45. toc();
  46. }
  47. {
  48. tic();
  49. vector<int> v;
  50. v.resize(8000010);
  51. repeat(i, 8000000){ v[i] = i; }
  52. toc();
  53. }
  54.  
  55. // =========================
  56.  
  57. {
  58. tic();
  59. vector<MassiveStruct> v;
  60. repeat(i, 1000){ v.emplace_back(); }
  61. toc();
  62. }
  63. {
  64. tic();
  65. vector<MassiveStruct> v;
  66. v.reserve(1005);
  67. repeat(i, 1000){ v.emplace_back(); }
  68. toc();
  69. }
  70. {
  71. tic();
  72. vector<MassiveStruct> v;
  73. v.resize(1005);
  74. toc();
  75. }
  76.  
  77. // =========================
  78.  
  79. {
  80. tic();
  81. vector<HugeStruct> v;
  82. repeat(i, 1000){ v.emplace_back(); }
  83. toc();
  84. }
  85. {
  86. tic();
  87. vector<HugeStruct> v;
  88. v.reserve(1005);
  89. repeat(i, 1000){ v.emplace_back(); }
  90. toc();
  91. }
  92. {
  93. tic();
  94. vector<HugeStruct> v;
  95. v.resize(1005);
  96. toc();
  97. }
  98.  
  99.  
  100. return 0;
  101. }
Success #stdin #stdout 0.11s 55208KB
stdin
Standard input is empty
stdout
[34 msec]
[19 msec]
[12 msec]
[16 msec]
[2 msec]
[3 msec]
[16 msec]
[5 msec]
[6 msec]