fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. struct Foo
  7. {
  8. int i;
  9. Foo(int i): i(i) { cout << "Neu erstellt mit i = " << i << '\n'; }
  10. Foo(const Foo &foo): i(foo.i) { cout << "Kopie erstellt mit i = " << i << '\n'; }
  11. const Foo& operator=(const Foo& foo) {i = foo.i; cout << "Zuweisung mit i = " << i << '\n'; return *this;}
  12. ~Foo() { cout << "Zerstört mit i = " << i << '\n'; }
  13. };
  14.  
  15. int main()
  16. {
  17. cout << "Erstelle drei leere vectoren a,b,c.\n";
  18. vector<Foo> a,b,c;
  19. for (int i = 0 ;i < 5; ++i)
  20. {
  21. cout << "Erstelle ein Foo("<<i<<") und kopiere es in a.\n";
  22. a.push_back(Foo(i));
  23. }
  24. cout << "Erstelle temporären vector und kopiere ihn nach b\n";
  25. b = vector<Foo>(a.begin(), a.end());
  26. cout << "Weise c direkt den Inhalt von a zu\n";
  27. c.assign(a.begin(), a.end());
  28. cout << "Zerstöre alles.\n";
  29. }
  30.  
Success #stdin #stdout 0s 3024KB
stdin
Standard input is empty
stdout
Erstelle drei leere vectoren a,b,c.
Erstelle ein Foo(0) und kopiere es in a.
Neu erstellt mit i = 0
Kopie erstellt mit i = 0
Zerstört mit i = 0
Erstelle ein Foo(1) und kopiere es in a.
Neu erstellt mit i = 1
Kopie erstellt mit i = 1
Kopie erstellt mit i = 0
Zerstört mit i = 0
Zerstört mit i = 1
Erstelle ein Foo(2) und kopiere es in a.
Neu erstellt mit i = 2
Kopie erstellt mit i = 2
Kopie erstellt mit i = 0
Kopie erstellt mit i = 1
Zerstört mit i = 0
Zerstört mit i = 1
Zerstört mit i = 2
Erstelle ein Foo(3) und kopiere es in a.
Neu erstellt mit i = 3
Kopie erstellt mit i = 3
Zerstört mit i = 3
Erstelle ein Foo(4) und kopiere es in a.
Neu erstellt mit i = 4
Kopie erstellt mit i = 4
Kopie erstellt mit i = 0
Kopie erstellt mit i = 1
Kopie erstellt mit i = 2
Kopie erstellt mit i = 3
Zerstört mit i = 0
Zerstört mit i = 1
Zerstört mit i = 2
Zerstört mit i = 3
Zerstört mit i = 4
Erstelle temporären vector und kopiere ihn nach b
Kopie erstellt mit i = 0
Kopie erstellt mit i = 1
Kopie erstellt mit i = 2
Kopie erstellt mit i = 3
Kopie erstellt mit i = 4
Weise c direkt den Inhalt von a zu
Kopie erstellt mit i = 0
Kopie erstellt mit i = 1
Kopie erstellt mit i = 2
Kopie erstellt mit i = 3
Kopie erstellt mit i = 4
Zerstöre alles.
Zerstört mit i = 0
Zerstört mit i = 1
Zerstört mit i = 2
Zerstört mit i = 3
Zerstört mit i = 4
Zerstört mit i = 0
Zerstört mit i = 1
Zerstört mit i = 2
Zerstört mit i = 3
Zerstört mit i = 4
Zerstört mit i = 0
Zerstört mit i = 1
Zerstört mit i = 2
Zerstört mit i = 3
Zerstört mit i = 4