Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- #include <string>
- using namespace std;
- template <typename T>
- // funkcija, ki z bubblesort-om uredi polje
- void uredi(T* polje, int st_elementov) {
- T tmp;
- for (int i=0; i<st_elementov; i++) {
- for (int j=(st_elementov-1); j>i; j--) {
- if (polje[j-1] > polje[j]) {
- tmp = polje[j-1];
- polje[j-1] = polje[j];
- polje[j] = tmp;
- }
- }
- }
- }
- //funkcija, ki z bubblesort-om uredi polje stringov po velikosti
- void uredi(string polje[], int st_elementov) {
- string tmp;
- for (int i=0; i<st_elementov; i++) {
- for (int j=(st_elementov-1); j>i; j--) {
- if (polje[j-1].length() > polje[j].length()) {
- tmp = polje[j-1];
- polje[j-1] = polje[j];
- polje[j] = tmp;
- }
- }
- }
- }
- template <bool P, int n, typename T>
- // funkcija, ki vrne n-ti najmanjši oz. največji element polja
- T optimumPolja(T* polje, int st_elementov) {
- uredi(polje, st_elementov);
- if (P)
- return polje[n-1];
- else
- return polje[st_elementov - n];
- }
- template <int n>
- // funkcija, ki vrne n-ti najdaljši element polja string-ov
- string optimumPolja(string* polje, int st_elementov) {
- uredi(polje, st_elementov);
- return polje[st_elementov - n];
- }
- int main (int argc, char* argv[]) {
- // definiramo polji števil
- int polje1[] = {2, 1, 0, 4, 5};
- double polje2[] ={5.5, -3.2, 0.0, 4.1};
- // definiramo obe polji stringov
- string nizi1[] = {"lev","mama","otorinolaringologija","programiranje"};
- string nizi2[] = {"otorinolaringologija","uros","miza","ana"};
- // klic optimumPolja za števila
- cout << "1. najmanjse stevilo polja int-ov je: " << optimumPolja<true,1>(polje1,5) << endl;
- cout << "2. najvecje stevilo polja int-ov je: " << optimumPolja<false,2>(polje2,4) << endl;
- // klic optimumPolja za string-e
- cout << "1. najdaljsi niz polja nizi1 je: " << optimumPolja<1>(nizi1,4) << endl;
- cout << "4. najdaljsi niz polja nizi2 je: " << optimumPolja<4>(nizi2,4) << endl;
- system("PAUSE");
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement