std::minmax
![]() |
ÐÑа ÑÑÑаниÑа бÑла пеÑеведена авÑомаÑиÑеÑки Ñ Ð°Ð½Ð³Ð»Ð¸Ð¹Ñкой веÑÑии вики иÑполÑзÑÑ ÐеÑеводÑик Google.
ÐеÑевод Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð¾Ñибки и ÑÑÑаннÑе ÑоÑмÑлиÑовки. ÐаведиÑе кÑÑÑÐ¾Ñ Ð½Ð° ÑекÑÑ, ÑÑÐ¾Ð±Ñ ÑвидеÑÑ Ð¾Ñигинал. ÐÑ Ð¼Ð¾Ð¶ÐµÑе помоÑÑ Ð² иÑпÑавлении оÑибок и ÑлÑÑÑении пеÑевода. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий пеÑейдиÑе по ÑÑÑлке. |
Defined in header <algorithm>
|
||
template< class T > std::pair<const T&,const T&> minmax( const T& a, const T& b ); |
(1) | (наÑÐ¸Ð½Ð°Ñ Ñ C++11) |
template< class T, class Compare > std::pair<const T&,const T&> minmax( const T& a, const T& b, Compare comp ); |
(2) | (наÑÐ¸Ð½Ð°Ñ Ñ C++11) |
template< class T > std::pair<T,T> minmax( std::initializer_list<T> ilist); |
(3) | (наÑÐ¸Ð½Ð°Ñ Ñ C++11) |
template< class T, class Compare > std::pair<T,T> minmax( std::initializer_list<T> ilist, Compare comp ); |
(4) | (наÑÐ¸Ð½Ð°Ñ Ñ C++11) |
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда.
ilist
.ilist
.ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда.
comp
.comp
.ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда.
СодеÑжание |
[пÑавиÑÑ] ÐаÑамеÑÑÑ
a, b | â | знаÑений Ð´Ð»Ñ ÑÑавнениÑ
ÐÑигинал: the values to compare ТекÑÑ Ð±Ñл пеÑеведÑн авÑомаÑиÑеÑки иÑполÑзÑÑ ÐеÑеводÑик Google. ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда. |
ilist | â | иниÑиализаÑÐ¾Ñ ÑпиÑок знаÑений Ð´Ð»Ñ ÑÑавнениÑ
ÐÑигинал: initializer list with the values to compare ТекÑÑ Ð±Ñл пеÑеведÑн авÑомаÑиÑеÑки иÑполÑзÑÑ ÐеÑеводÑик Google. ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда. |
comp | â | ÑÑнкÑÐ¸Ñ ÑÑавнениÑ, возвÑаÑаÑÑÐ°Ñ âtrue еÑли if a is less than b . СигнаÑÑÑа ÑÑнкÑии ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ ÑквиваленÑна ÑледÑÑÑей: bool cmp(const Type1 &a, const Type2 &b); СигнаÑÑÑа на обÑзана ÑодеÑжаÑÑ const &, однако, ÑÑнкÑÐ¸Ñ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑ Ð¿ÐµÑеданнÑе обÑекÑÑ. |
ТÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ðº Ñипам | ||
-T должен ÑооÑвеÑÑÑвоваÑÑ ÑÑебованиÑм LessThanComparable . for the overloads (1) and (3)
| ||
-T должен ÑооÑвеÑÑÑвоваÑÑ ÑÑебованиÑм CopyConstructible . for the overloads (3) and (4)
|
[пÑавиÑÑ] ÐозвÑаÑаемое знаÑение
a<b
или еÑли a
ÑквиваленÑно b
. ÐозвÑаÑÐ°ÐµÑ ÑезÑлÑÑÐ°Ñ std::make_pair(b, a) еÑли b<a
.a<b
or if a
is equivalent to b
. Returns the result of std::make_pair(b, a) if b<a
.ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда.
ilist
в каÑеÑÑве пеÑвого ÑлеменÑа и наиболÑÑий в каÑеÑÑве вÑоÑого. ÐÑли неÑколÑко ÑлеменÑов, ÑквиваленÑнÑÑ
ÑамÑй маленÑкий, ÑамÑй левÑй Ñакой ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ðµ веÑнÑлÑÑ. ÐÑли неÑколÑко ÑлеменÑов, ÑквиваленÑнÑÑ
ÑамÑй болÑÑой, ÑамÑй пÑавÑй Ñакой ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð²Ð¾Ð·Ð²ÑаÑаеÑÑÑ.ilist
as the first element and the greatest as the second. If several elements are equivalent to the smallest, the leftmost such element is returned. If several elements are equivalent to the largest, the rightmost such element is returned.ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда.
[пÑавиÑÑ] СложноÑÑÑ
ilist.size()
ilist.size()
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда.
[пÑавиÑÑ] ÐÐ¾Ð·Ð¼Ð¾Ð¶Ð½Ð°Ñ ÑеализаÑиÑ
ÐеÑвÑй ваÑÐ¸Ð°Ð½Ñ |
---|
template<class T> std::pair<const T&,const T&> minmax(const T& a, const T& b) { return (b < a) ? std::make_pair(b, a) : std::make_pair(a, b); } |
ÐÑоÑой ваÑÐ¸Ð°Ð½Ñ |
template<class T, class Compare> std::pair<const T&,const T&> minmax(const T& a, const T& b, Compare comp) { return comp(b, a) ? std::make_pair(b, a) : std::make_pair(a, b); } |
ТÑеÑий ваÑÐ¸Ð°Ð½Ñ |
template< class T > std::pair<T,T> minmax( std::initializer_list ilist) { auto p = std::minmax_element(ilist.begin(), ilist.end()); return std::make_pair(*p.first, *p.second); } |
ЧеÑвÑÑÑÑй ваÑÐ¸Ð°Ð½Ñ |
template< class T, class Compare > std::pair<T,T> minmax( std::initializer_list ilist, Compare comp ) { auto p = std::minmax_element(ilist.begin(), ilist.end(), comp); return std::make_pair(*p.first, *p.second); } |
[пÑавиÑÑ] ÐÑимеÑ
#include <algorithm> #include <iostream> #include <vector> #include <cstdlib> #include <ctime> int main() { std::vector<int> v {3, 1, 4, 1, 5, 9, 2, 6}; std::srand(std::time(0)); std::pair<int,int> bounds = std::minmax(std::rand() % v.size(), std::rand() % v.size()); std::cout << "v[" << bounds.first << "," << bounds.second << "]: "; for (int i = bounds.first; i < bounds.second; ++i) { std::cout << v[i] << ' '; } std::cout << '\n'; }
ÐозможнÑй вÑвод:
v[2,7]: 4 1 5 9 2
[пÑавиÑÑ] См. Ñакже
ÐозвÑаÑÐ°ÐµÑ Ð¼ÐµÐ½ÑÑий из двÑÑ
ÑлеменÑов (Ñаблон ÑÑнкÑии) | |
ÐозвÑаÑÐ°ÐµÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑÑий из двÑÑ
аÑгÑменÑов (Ñаблон ÑÑнкÑии) |