fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. struct Poop
  5. {
  6. ~Poop(){
  7. printf("~Poop()\n");
  8. }
  9. };
  10.  
  11. int main()
  12. {
  13. std::vector< std::vector<Poop> > vec(1);
  14.  
  15. printf("Adding...\n");
  16.  
  17. // Add three elements; will call Poop's destructor three times
  18. vec[0].push_back(Poop());
  19. vec[0].push_back(Poop());
  20. vec[0].push_back(Poop());
  21.  
  22. printf("\nRemoving...\n");
  23.  
  24. // Will call each element in vec[0]'s destructor
  25. // So ~Poop() three times
  26. vec.pop_back();
  27.  
  28. return 0;
  29. }
Success #stdin #stdout 0.01s 2816KB
stdin
Standard input is empty
stdout
Adding...
~Poop()
~Poop()
~Poop()
~Poop()
~Poop()
~Poop()

Removing...
~Poop()
~Poop()
~Poop()