fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. struct TestDelete
  5. {
  6. int integer;
  7. TestDelete(int i) : integer(i)
  8. {
  9. std::cout <<"TestDelete constructor for "<< integer <<"\n";
  10. }
  11. ~TestDelete()
  12. {
  13. std::cout <<"TestDelete destructor for "<< integer<<"\n";
  14. }
  15. };
  16.  
  17. int main () {
  18.  
  19. std::cout << "original:\n";
  20. std::vector<TestDelete> pt;
  21. pt.push_back(TestDelete(1));
  22. pt.push_back(TestDelete(2));
  23.  
  24. std::cout <<"\nimprovement:\n";
  25.  
  26. std::vector<TestDelete> pt2;
  27. pt2.reserve(2);
  28. pt2.push_back(TestDelete(1));
  29. pt2.push_back(TestDelete(2));
  30.  
  31. std::cout << "\nLet the desruction commence.\n";
  32.  
  33. return 0;
  34. }
Success #stdin #stdout 0s 2988KB
stdin
Standard input is empty
stdout
original:
TestDelete constructor for 1
TestDelete destructor for 1
TestDelete constructor for 2
TestDelete destructor for 1
TestDelete destructor for 2

improvement:
TestDelete constructor for 1
TestDelete destructor for 1
TestDelete constructor for 2
TestDelete destructor for 2

Let the desruction commence.
TestDelete destructor for 1
TestDelete destructor for 2
TestDelete destructor for 1
TestDelete destructor for 2