Advertisement
Guest User

Untitled

a guest
Aug 12th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.41 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7.  
  8. template <typename T>
  9. // funkcija, ki z bubblesort-om uredi polje
  10. void uredi(T* polje, int st_elementov) {
  11.      
  12.      T tmp;
  13.      
  14.      for (int i=0; i<st_elementov; i++) {
  15.           for (int j=(st_elementov-1); j>i; j--) {
  16.               if (polje[j-1] > polje[j]) {
  17.                  
  18.                   tmp = polje[j-1];
  19.                   polje[j-1] = polje[j];
  20.                   polje[j] = tmp;                  
  21.               }    
  22.           }  
  23.      }    
  24. }
  25.  
  26. //funkcija, ki z bubblesort-om uredi polje stringov po velikosti
  27. void uredi(string polje[], int st_elementov) {
  28.      
  29.      string tmp;
  30.      
  31.      for (int i=0; i<st_elementov; i++) {
  32.           for (int j=(st_elementov-1); j>i; j--) {
  33.               if (polje[j-1].length() > polje[j].length()) {
  34.                  
  35.                   tmp = polje[j-1];
  36.                   polje[j-1] = polje[j];
  37.                   polje[j] = tmp;                  
  38.               }    
  39.           }  
  40.      }    
  41. }
  42.  
  43. template <bool P, int n, typename T>
  44. // funkcija, ki vrne n-ti najmanjši oz. največji element polja
  45. T optimumPolja(T* polje, int st_elementov) {
  46.    
  47.     uredi(polje, st_elementov);
  48.    
  49.     if (P)
  50.         return polje[n-1];  
  51.     else
  52.         return polje[st_elementov - n];
  53. }
  54.  
  55. template <int n>
  56. // funkcija, ki vrne n-ti najdaljši element polja string-ov
  57. string optimumPolja(string* polje, int st_elementov) {
  58.    
  59.     uredi(polje, st_elementov);
  60.  
  61.     return polje[st_elementov - n];  
  62.  
  63. }
  64.  
  65.  
  66. int main (int argc, char* argv[]) {
  67.    
  68.     // definiramo polji števil
  69.     int polje1[] = {2, 1, 0, 4, 5};
  70.     double polje2[] ={5.5, -3.2, 0.0, 4.1};
  71.  
  72.  
  73.    
  74.     // definiramo obe polji stringov
  75.     string nizi1[] = {"lev","mama","otorinolaringologija","programiranje"};
  76.     string nizi2[] = {"otorinolaringologija","uros","miza","ana"};
  77.    
  78.     // klic optimumPolja za števila
  79.     cout << "1. najmanjse stevilo polja int-ov je: " << optimumPolja<true,1>(polje1,5) << endl;
  80.     cout << "2. najvecje stevilo polja int-ov je: " << optimumPolja<false,2>(polje2,4) << endl;
  81.    
  82.     // klic optimumPolja za string-e
  83.     cout << "1. najdaljsi niz polja nizi1 je: " << optimumPolja<1>(nizi1,4) << endl;
  84.     cout << "4. najdaljsi niz polja nizi2 je: " << optimumPolja<4>(nizi2,4) << endl;
  85.    
  86.  
  87.     system("PAUSE");
  88.     return EXIT_SUCCESS;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement