Giriş
Bir iterator döner. Dizi içinde en büyük elemanı bulur. Açıklaması şöyle. Bu metod ilk max nesneyi döndürür. std::minmax_element() en son max element'i döndürüyor.
Bir iterator döner. Dizi içinde en büyük elemanı bulur. Açıklaması şöyle. Bu metod ilk max nesneyi döndürür. std::minmax_element() en son max element'i döndürüyor.
If more than one element fulfills this condition, the iterator returned points to the first of such elements.
Örnek - comparator
Elimizde bir tuple vector olsun. En büyük ikinci elemanı bulmak için şöyle yaparız. Iterator'den tuple'a ve ondan da ikinci elemana erişim koduna dikkat.
std::vector<std::tuple<int, int>> v = { {12,1},{12,5},{5,6} };
const auto less_by_second = [](const auto& lhs, const auto& rhs)
{ return std::get<1>(lhs) < std::get<1>(rhs); };
const double maxVal = std::get<1>(*std::max_element(v.begin(), v.end(), less_by_second));
Örnek - comparator
0, 1
0, 2
1, 1
1, 2
1, 4
2, 2
3, 1
pair'in sol veya sağındaki en büyük elemanı bulmak isteyelim. Şöyle yaparız.
auto max_pair = *std::max_element(std::begin(edges), std::end(edges),
[](const auto& p1, const auto& p2) {
return std::max(p1.first, p1.second) < std::max(p2.first, p2.second);
});
int max = std::max(max_pair.first, max_pair.second);
Hiç yorum yok:
Yorum Gönder