Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- void fMaxMin(vector<int*> vec, int* max, int**& min, int** cMax, int& cMin)
- {
- int val_max, val_min, val_cMax, val_cMin;
- val_max = *(vec[0]);
- val_min = *(vec[0]);
- val_cMax = 1;
- val_cMin = 1;
- int size = vec.size();
- for (int i = 1; i < size; ++i)
- {
- if (*(vec[i]) > val_max)
- {
- val_max = *(vec[i]);
- val_cMax = 1;
- }
- else if (*(vec[i]) == val_max)
- ++val_cMax;
- if (*(vec[i]) < val_min)
- {
- val_min = *(vec[i]);
- val_cMin = 1;
- }
- else if (*(vec[i]) == val_min)
- ++val_cMin;
- }
- *max = val_max;
- *(*min) = val_min;
- *(*cMax) = val_cMax;
- cMin = val_cMin;
- }
- int main()
- {
- auto vec = vector<int>{ 1, 2, 1, 42, 2, 2, 42, 1, 1, 2, 1, 42 }; // utworzenie wektora typu int
- auto vecP = vector<int*>(); // utworzenie pustego wektora typu wskaźnik na int (int*)
- for (auto& item : vec) // nagłówek zakresowej pętli for
- {
- vecP.push_back(&item); // wstawienie do wektora vecP wskaźników do elementów wektora vec
- }
- int max, min, cMax, cMin; // utworzenie zmiennych przechowujących wyniki
- int* ptr_min = &min; // utworzenie wskaźnika przechowującego adres zmiennej min
- int** ptr2_min = &ptr_min; // utworzenie wskaźnika przechowującego adres wskaźnika ptr_min
- int* ptr_cMax = &cMax; // utworzenie wskaźnika przechowującego adres zmiennej cMax
- fMaxMin(vecP, &max, ptr2_min, &ptr_cMax, cMin); // wywołanie funkcji fMaxMin
- cout << "max: " << max << endl;
- cout << "min: " << min << endl;
- cout << "cMax: " << cMax << endl;
- cout << "cMin: " << cMin << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement