Cześć, mam problem z warunkiem w zadaniu. Calem zadania jest stworzenie dwóch FUNKCJI, które w wektorze znajdą najmniejszy element, jedna funkcja na iteratorach modyfikujących druga na niemodyfikujących. Problem pojawia się przy warunku zadania : jeżeli taki element (najmniejszy) nie istnieje, funkcja zwraca końcowy iterator wycinka. (np. {2,2,2,2,2}). Nie wiem gdzie i jak to wcisnąć. Można tylko używać #include vector. Niżej załączam moje wypociny.
#include <vector>
#include <iostream>
std::vector<int>::iterator min_element(std::vector<int>::iterator b, std::vector<int>::iterator e) {
while ( b < e) {
auto min = b;
for (auto iterator = b; iterator < e; ++iterator){
if(*iterator < *min){
min = iterator;
}
}
return min;
}
}
}
std::vector<int>::const_iterator min_element(std::vector<int>::const_iterator b, std::vector<int>::const_iterator e) {
while ( b < e) {
auto min = b;
for (auto iterator = b; iterator < e; ++iterator){
if(*iterator < *min){
min = iterator;
}
}
return min;
}
int main() {
std::vector<int> vector {2,2,2,2,2,2};
std::vector<int>::iterator result1 = min_element(vector.begin(), vector.end());
std::vector<int>::const_iterator result2 = min_element(vector.cbegin(), vector.cend());
std::cout << result1 - vector.begin() << " " << result2 - vector.cbegin() << std::endl;
}