std::min_element
Főnév
std::min element (tsz. std::min elements)
- (informatika) A
std::min_elementegy STL algoritmus, amely egy tartomány legkisebb elemét keresi meg és egy iterátort ad vissza rá. Ez a függvény azalgorithmkönyvtár része.
1. std::min_element Szintaxis
A függvény kétféleképpen használható:
#include <algorithm>
#include <vector>
#include <iostream>
auto min_it = std::min_element(first, last);
auto min_it = std::min_element(first, last, comp);
first: A tartomány kezdete (iterátor).last: A tartomány vége (iterátor).comp(opcionális): Egy összehasonlító függvény, amely meghatározza az összehasonlítás módját.
Visszatérési érték:
Egy iterátor a legkisebb elemre (ha több ilyen is van, az elsőre).
2. Alapvető Példa std::min_element-tel
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> v = {5, 2, 8, 1, 3};
auto min_it = std::min_element(v.begin(), v.end());
std::cout << "A legkisebb elem: " << *min_it << std::endl;
return 0;
}
Kimenet:
A legkisebb elem: 1
Magyarázat: - A std::min_element(v.begin(), v.end()) meghatározza a legkisebb értékű elemet (1). - Az iterátor *min_it segítségével kinyerjük az értékét.
3. std::min_element Tömbbel
A std::min_element nem csak vektorral, hanem tömbökkel is működik.
#include <iostream>
#include <algorithm>
int main() {
int arr[] = {10, 20, 5, 8, 2};
auto min_it = std::min_element(std::begin(arr), std::end(arr));
std::cout << "A legkisebb elem: " << *min_it << std::endl;
return 0;
}
Kimenet:
A legkisebb elem: 2
Megjegyzés:
A std::begin(arr) és std::end(arr) biztonságos módszer egy tömb iterálására.
4. Egyéni Összehasonlító Függvény Használata
A std::min_element-nek átadhatunk egy egyedi összehasonlító függvényt, hogy megváltoztassuk az összehasonlítás módját.
Összehasonlítás abszolút érték szerint
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
bool abs_compare(int a, int b) {
return std::abs(a) < std::abs(b);
}
int main() {
std::vector<int> v = {-10, -3, 5, -1, 8};
auto min_it = std::min_element(v.begin(), v.end(), abs_compare);
std::cout << "Az abszolút legkisebb elem: " << *min_it << std::endl;
return 0;
}
Kimenet:
Az abszolút legkisebb elem: -1
Magyarázat: - Az abs_compare() összehasonlítja az abszolút értékeket (std::abs(a) < std::abs(b)). - A std::min_element ezt az egyedi logikát használja.
5. std::min_element és Páros Struktúrák
Ha egy pár struktúrából szeretnénk a legkisebb értéket kiszámítani, akkor egyedi összehasonlítót kell használni.
#include <iostream>
#include <vector>
#include <algorithm>
struct Ember {
std::string nev;
int kor;
};
bool compare_by_age(const Ember& a, const Ember& b) {
return a.kor < b.kor;
}
int main() {
std::vector<Ember> emberek = {{"Anna", 25}, {"Béla", 30}, {"Csaba", 22}};
auto min_it = std::min_element(emberek.begin(), emberek.end(), compare_by_age);
std::cout << "A legfiatalabb: " << min_it->nev << " (" << min_it->kor << " év)" << std::endl;
return 0;
}
Kimenet:
A legfiatalabb: Csaba (22 év)
Magyarázat: - A compare_by_age() összehasonlítja az embereket az életkoruk szerint. - A std::min_element ezt a logikát használja.
6. Alternatíva – std::min Több Értékre
Ha csak két értéket szeretnénk összehasonlítani, a std::min() egyszerűbb:
#include <iostream>
#include <algorithm>
int main() {
int a = 10, b = 5;
std::cout << "A kisebbik: " << std::min(a, b) << std::endl;
return 0;
}
Kimenet:
A kisebbik: 5
Összegzés
✅ std::min_element egy iterátort ad vissza a legkisebb elemre egy tartományban.
✅ Vektorokkal és tömbökkel egyaránt működik.
✅ Egyedi összehasonlító függvény is használható.
✅ Ha csak két értéket kell összehasonlítani, akkor std::min() elegendő.
Ha hatékony minimumkeresésre van szükséged egy tömbben vagy vektorban, a std::min_element a legjobb választás! 🚀
- std::min element - Szótár.net (en-hu)
- std::min element - Sztaki (en-hu)
- std::min element - Merriam–Webster
- std::min element - Cambridge
- std::min element - WordNet
- std::min element - Яндекс (en-ru)
- std::min element - Google (en-hu)
- std::min element - Wikidata
- std::min element - Wikipédia (angol)