Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. #include <iostream>
  2. #include <type_traits>
  3. #include <vector>
  4. #include <deque>
  5.  
  6. template <typename Tip>
  7. auto KreirajDinamickuKopiju2D(Tip kont) -> typename std::remove_reference<decltype(kont[0][0])>::type** {
  8. try {
  9. typename std::remove_reference<decltype(kont[0][0])>::type** p = new typename std::remove_reference<decltype(kont[0][0])>::type*[kont.size()]{};
  10. try {
  11. for(int i = 0; i < kont.size(); i++) {
  12. p[i] = new typename std::remove_reference<decltype(kont[0][0])>::type[kont[i].size()];
  13. }
  14. for(int i = 0; i < kont.size(); i++) {
  15. for(int j = 0; j < kont[i].size(); j++) {
  16. p[i][j] = kont[i][j];
  17. }
  18. }
  19. return p;
  20. }
  21. catch(...) {
  22. for(int i = 0; i < kont.size(); i++) {
  23. delete[] p[i];
  24. }
  25. delete[] p;
  26. throw;
  27. }
  28. }
  29. catch(...) {
  30. throw;
  31. }
  32. }
  33.  
  34. int main () {
  35. std::vector<std::vector<int>> v{{1, 2, 3}, {1}, {1, 2, 3, 4, 5}};
  36. try {
  37. auto p = KreirajDinamickuKopiju2D(v);
  38. for(int i = 0; i < v.size(); i++) {
  39. for(int j = 0; j < v.at(i).size(); j++) {
  40. std::cout << p[i][j] << " ";
  41. }
  42. std::cout << std::endl;
  43. }
  44. for(int i(0); i < v.size(); i++) {
  45. delete[] p[i];
  46. }
  47. delete[] p;
  48. }
  49. catch(...) {
  50. std::cout << "neuspjela alok";
  51. }
  52. return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement