fork download
  1. #include <vector>
  2. #include <array>
  3. #include <algorithm>
  4. #include <iostream>
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.  
  10. vector< vector<vector<int>> > collection;
  11.  
  12. array<array<int, 5>, 5> arr {{{1,2},{2,3},{2,4},{3,5},{4,999}}};
  13.  
  14. vector<vector<int>> vec(arr.size());
  15.  
  16. transform(arr.begin(), arr.end(), vec.begin(), [](auto& rer) {
  17. return vector<int>(rer.begin(), rer.end());
  18. });
  19.  
  20. collection.push_back(vec);
  21.  
  22. printf("элемент вектора = %i\n",vec[4][1]);
  23. printf("элемент коллекции = %i\n",collection[0][4][1]);
  24.  
  25. array<array<int, 10>, 10> arr2 {{{1,2},{2,3},{2,4},{3,5},{4,9000},{5,10000}}};
  26. vector<vector<int>> vec2(arr2.size());
  27.  
  28. transform(arr2.begin(), arr2.end(), vec2.begin(), [](auto& a) {
  29. return vector<int>(a.begin(), a.end());
  30. });
  31. printf("тот же элемент второго вектора = %i\n",vec2[4][1]);
  32.  
  33. collection[0] = vec2;
  34. printf("тот же элемент перезаписанной коллекции = %i\n",collection[0][4][1]);
  35. printf("последующий элемент (collection сам расширился \\o/) = %i\n",collection[0][5][1]);
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
элемент вектора = 999
элемент коллекции = 999
тот же элемент второго вектора = 9000
тот же элемент перезаписанной коллекции = 9000
последующий элемент (collection сам расширился \o/) = 10000