Advertisement
RobertDeMilo

RB5.1 Перемещение временных объектов

Apr 16th, 2024
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. string MakeString()
  8. {
  9.     return string(100000000,'a');
  10. }
  11.  
  12. int main()
  13. {
  14.     {
  15.         LOG_DURATION("with variable");
  16.  
  17.         vector<string> strings;
  18.         string heavy_string = MakeString();
  19.         strings.push_back(heavy_string);
  20.         //cout << heavy_string;
  21.     }
  22.  
  23.     {
  24.         LOG_DURATION("without variable");
  25.  
  26.         vector<string> strings;
  27.         strings.push_back(MakeString()); // результат вызова функции - временный объект передаем в метод
  28.     }
  29.  
  30.     {
  31.         LOG_DURATION("ctor: with variable");
  32.        
  33.         vector<string> strings;
  34.         string heavy_string = string(100000000, 'a');
  35.         strings.push_back(heavy_string);
  36.     }
  37.    
  38.     {
  39.         LOG_DURATION("ctor: without variable");
  40.        
  41.         vector<string> strings;
  42.         strings.push_back(string(100000000, 'a'));
  43.     }
  44.  
  45.     return 0;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement