fork download
  1. // Example program
  2. #include <iostream>
  3. #include <string>
  4. #include <vector>
  5. #include <chrono>
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10. string a = "veryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongstring";
  11. vector<string> b(10,a);
  12. vector<vector<string> > c(1000,b);
  13. vector<string> d,e;
  14.  
  15. auto t1 = chrono::system_clock::now();
  16. for(auto& item : c)
  17. {
  18. d.insert(d.end(),item.begin(),item.end());
  19. }
  20. cout << c[0][0].length() << endl;
  21.  
  22. auto t2 = chrono::system_clock::now();
  23. for(auto& item:c)
  24. {
  25. e.insert(e.end(), std::make_move_iterator(item.begin()),std::make_move_iterator(item.end()));
  26. }
  27.  
  28. auto t3 = chrono::system_clock::now();
  29. cout << chrono::duration_cast<chrono::nanoseconds>(t2-t1).count() << endl;
  30. cout << chrono::duration_cast<chrono::nanoseconds>(t3-t2).count() << endl;
  31. cout << c[0][0].length() << endl;
  32. cout << "To check that c has been moved from." <<endl;
  33. }
Success #stdin #stdout 0s 3336KB
stdin
Standard input is empty
stdout
122
320576
98434
0
To check that c has been moved from.