Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <type_traits>
- #include <vector>
- #include <deque>
- template <typename Tip>
- auto KreirajDinamickuKopiju2D(Tip kont) -> typename std::remove_reference<decltype(kont[0][0])>::type** {
- try {
- typename std::remove_reference<decltype(kont[0][0])>::type** p = new typename std::remove_reference<decltype(kont[0][0])>::type*[kont.size()]{};
- try {
- for(int i = 0; i < kont.size(); i++) {
- p[i] = new typename std::remove_reference<decltype(kont[0][0])>::type[kont[i].size()];
- }
- for(int i = 0; i < kont.size(); i++) {
- for(int j = 0; j < kont[i].size(); j++) {
- p[i][j] = kont[i][j];
- }
- }
- return p;
- }
- catch(...) {
- for(int i = 0; i < kont.size(); i++) {
- delete[] p[i];
- }
- delete[] p;
- throw;
- }
- }
- catch(...) {
- throw;
- }
- }
- int main () {
- std::vector<std::vector<int>> v{{1, 2, 3}, {1}, {1, 2, 3, 4, 5}};
- try {
- auto p = KreirajDinamickuKopiju2D(v);
- for(int i = 0; i < v.size(); i++) {
- for(int j = 0; j < v.at(i).size(); j++) {
- std::cout << p[i][j] << " ";
- }
- std::cout << std::endl;
- }
- for(int i(0); i < v.size(); i++) {
- delete[] p[i];
- }
- delete[] p;
- }
- catch(...) {
- std::cout << "neuspjela alok";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement