Advertisement
sellmmaahh

tut6-zad5

Jul 23rd, 2015
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.57 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include<stdexcept>
  5.  
  6.  
  7. template <typename Tip>
  8. Tip **Funk (std::vector<std::vector<Tip>> vek)
  9. {
  10.     Tip **niz=nullptr;
  11.  
  12.     int br_elem(0);
  13.     for (int i=0; i<vek.size(); i++) br_elem+=vek[i].size();
  14.  
  15.     try
  16.     {
  17.  
  18.         niz=new Tip *[vek.size()];
  19.  
  20.         niz[0]=new int[br_elem];
  21.  
  22.         for (int i=1; i<vek.size(); i++)
  23.         {
  24.             niz[i]=nullptr;
  25.         }
  26.  
  27.         for (int i=1; i<vek.size(); i++)
  28.         {
  29.             niz[i]=niz[i-1]+vek[i-1].size();
  30.         }
  31.  
  32.         for (int i=0; i<vek.size(); i++)
  33.         {
  34.             for (int j=0; j<vek[i].size(); j++) niz[i][j]=vek[i][j];
  35.         }
  36.  
  37.  
  38.  
  39.     return niz;
  40. }
  41. catch(std::bad_alloc)
  42. {
  43.  
  44.     throw "Alokacija nije uspjela.";
  45.  
  46. }
  47.  
  48. }
  49.  
  50.  
  51. int main ()
  52. {
  53.  
  54.     std::cout<<"Unesite dimnezije matrice: ";
  55.     int m, n;
  56.     std::cin>>n>>m;
  57.     int broj;
  58.     std::vector<std::vector<int>> vek(n);
  59.     std::cout<<"Unesite elemente matrice: ";
  60.     for (int i=0; i<n; i++)
  61.     {
  62.         for (int j=0; j<m; j++)
  63.         {
  64.             std::cin>>broj;
  65.             vek[i].push_back(broj);
  66.         }
  67.     }
  68.  
  69.  
  70.     try
  71.     {
  72.         int **niz=Funk(vek);
  73.         for (int i=0; i<n; i++)
  74.         {
  75.             for (int j=0; j<m; j++)
  76.                 std::cout<<niz[i][j]<<" ";
  77.             std::cout<<std::endl;
  78.         }
  79.         if (niz!=nullptr)
  80.         {
  81.  
  82.             delete [] niz[0] ;
  83.             delete [] niz;
  84.         }
  85.     }
  86.     catch (std::bad_alloc *e)
  87.     {
  88.         std::cout<<e;
  89.     }
  90.     return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement