Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.44 KB | None | 0 0
  1. /*
  2.     TP 2018/2019: Tutorijal 6, Zadatak 2
  3.  
  4.     Autotestovi by Kerim Hodzic. Prijave gresaka, pitanja
  5.     i sugestije saljite na mail: khodzic2@etf.unsa.ba
  6.  
  7.     Napomene: testovi su konacni tek pred tutorijal
  8.               za krsenje zabrana dobiva se 0 bodova za zadatak
  9.  
  10. */
  11. #include <iostream>
  12. #include <vector>
  13.  
  14. using std::cin;
  15. using std::cout;
  16. using std::endl;
  17.  
  18. template <typename Tip>
  19.  
  20. auto KreirajIzvrnutiNiz(Tip pocetak, Tip iza_kraja) -> typename std::remove_reference<decltype(*pocetak)>::type*
  21. {
  22.  
  23.     auto tipic = *pocetak;
  24.     Tip temp = pocetak;
  25.     int duzina = 0;
  26.     while(temp != iza_kraja) {
  27.         temp++;
  28.         duzina++;
  29.     }
  30.  
  31.     decltype(tipic) *niz = new decltype(tipic)[duzina];
  32.     auto iza_niza=niz;
  33.     int i=0;
  34.     while(i<duzina) {
  35.         iza_niza++;
  36.         i++;
  37.     }
  38.    
  39.     i=1;
  40.     while(pocetak != iza_kraja) {
  41.         auto *temp2 = niz;
  42.         while(temp2 != iza_niza - i) {
  43.             temp2++;
  44.         }
  45.         *temp2 = *pocetak++;
  46.         i++;
  47.     }
  48.  
  49.  
  50.     return niz;
  51. }
  52.  
  53. int main ()
  54. {
  55.     try {
  56.         int n;
  57.         cout<<"Koliko zelite elemenata: ";
  58.         cin>>n;
  59.        
  60.         if(n>=2000000000) throw ("Nedovoljno memorije!");
  61.        
  62.         cout<<"Unesite elemente: ";
  63.         std::vector<double> v(n);
  64.        
  65.         for(int i=0; i<n; i++) {
  66.             double p;
  67.             cin>>p;
  68.             v.at(i)=p;
  69.         }
  70.         double *niz = KreirajIzvrnutiNiz(v.begin(), v.end());
  71.         cout<<"Kreirani niz: ";
  72.        
  73.         for (int i=0; i<n; i++) {
  74.             cout<<niz[i]<<" ";
  75.         }
  76.         delete [] niz;
  77.        
  78.        
  79.        
  80.     }catch(const char error[]) {
  81.         cout<<error<<endl;
  82.     }
  83.    
  84.    
  85.     return 0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement