std::is_heap_until
![]() |
ÐÑа ÑÑÑаниÑа бÑла пеÑеведена авÑомаÑиÑеÑки Ñ Ð°Ð½Ð³Ð»Ð¸Ð¹Ñкой веÑÑии вики иÑполÑзÑÑ ÐеÑеводÑик Google.
ÐеÑевод Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð¾Ñибки и ÑÑÑаннÑе ÑоÑмÑлиÑовки. ÐаведиÑе кÑÑÑÐ¾Ñ Ð½Ð° ÑекÑÑ, ÑÑÐ¾Ð±Ñ ÑвидеÑÑ Ð¾Ñигинал. ÐÑ Ð¼Ð¾Ð¶ÐµÑе помоÑÑ Ð² иÑпÑавлении оÑибок и ÑлÑÑÑении пеÑевода. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий пеÑейдиÑе по ÑÑÑлке. |
Defined in header <algorithm>
|
||
template< class RandomIt > RandomIt is_heap_until( RandomIt first, RandomIt last ); |
(1) | (наÑÐ¸Ð½Ð°Ñ Ñ C++11) |
template< class RandomIt, class Compare > RandomIt is_heap_until( RandomIt first, RandomIt last, Compare comp ); |
(2) | (наÑÐ¸Ð½Ð°Ñ Ñ C++11) |
[first, last)
и наÑ
Ð¾Ð´Ð¸Ñ ÑамÑй болÑÑой Ð½Ð°Ð±Ð¾Ñ Ð½Ð°ÑÐ¸Ð½Ð°Ñ Ñ first
коÑоÑÑй' кÑÑи. ÐеÑÐ²Ð°Ñ Ð²ÐµÑÑÐ¸Ñ ÑÑнкÑии иÑполÑзÑеÑÑÑ operator< Ð´Ð»Ñ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ ÑлеменÑов, вÑоÑой иÑполÑзÑÐµÑ Ð´Ð°Ð½Ð½ÑÑ ÑÑнкÑÐ¸Ñ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ comp
.[first, last)
and finds the largest range beginning at first
which is heap. The first version of the function uses operator< to compare the elements, the second uses the given comparison function comp
.ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда.
СодеÑжание |
[пÑавиÑÑ] ÐаÑамеÑÑÑ
first, last | â | диапазон ÑлеменÑов Ð´Ð»Ñ Ð¸Ð·ÑÑениÑ
ÐÑигинал: the range of elements to examine ТекÑÑ Ð±Ñл пеÑеведÑн авÑомаÑиÑеÑки иÑполÑзÑÑ ÐеÑеводÑик Google. ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда. |
comp | â | ÑÑнкÑÐ¸Ñ ÑÑавнениÑ, возвÑаÑаÑÑÐ°Ñ âtrue еÑли пеÑвÑй аÑгÑÐ¼ÐµÐ½Ñ Ð¼ÐµÐ½ÑÑе вÑоÑого. СигнаÑÑÑа ÑÑнкÑии ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ ÑквиваленÑна ÑледÑÑÑей: bool cmp(const Type1 &a, const Type2 &b); СигнаÑÑÑа на обÑзана ÑодеÑжаÑÑ const &, однако, ÑÑнкÑÐ¸Ñ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑ Ð¿ÐµÑеданнÑе обÑекÑÑ. |
ТÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ðº Ñипам | ||
-RandomIt должен ÑооÑвеÑÑÑвоваÑÑ ÑÑебованиÑм RandomAccessIterator .
|
[пÑавиÑÑ] ÐозвÑаÑаемое знаÑение
first
коÑоÑÑй' кÑÑи. То еÑÑÑ, поÑледний it
иÑеÑаÑоÑа, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ
диапазон [first, it)
ÑвлÑеÑÑÑ' кÑÑи.first
which is heap. That is, the last iterator it
for which range [first, it)
is heap.ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда.
[пÑавиÑÑ] СложноÑÑÑ
first
и last
first
and last
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда.
[пÑавиÑÑ] ÐамеÑки
[f,l)
, коÑоÑÑй Ð¸Ð¼ÐµÐµÑ ÑледÑÑÑие ÑвойÑÑва:[f,l)
that has the following properties:ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда.
- *f ÑвлÑеÑÑÑ ÐºÑÑпнейÑим ÑлеменÑом в аÑÑоÑÑименÑеÐÑигинал:*f is the largest element in the rangeТекÑÑ Ð±Ñл пеÑеведÑн авÑомаÑиÑеÑки иÑполÑзÑÑ ÐеÑеводÑик Google.
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда. - ÐовÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð° ââÑ Ð¿Ð¾Ð¼Ð¾ÑÑÑ std::push_heap()ÐÑигинал:a new element can be added using std::push_heap()ТекÑÑ Ð±Ñл пеÑеведÑн авÑомаÑиÑеÑки иÑполÑзÑÑ ÐеÑеводÑик Google.
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда. - ÐеÑвÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑдалиÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ std::pop_heap()ÐÑигинал:the first element can be removed using std::pop_heap()ТекÑÑ Ð±Ñл пеÑеведÑн авÑомаÑиÑеÑки иÑполÑзÑÑ ÐеÑеводÑик Google.
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда.
-
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда.
[пÑавиÑÑ] ÐÑимеÑ
#include <iostream> #include <algorithm> int main() { std::vector<int> v { 3, 1, 4, 1, 5, 9 }; std::make_heap(v.begin(), v.end()); // probably mess up the heap v.push_back(2); v.push_back(6); auto heap_end = std::is_heap_until(v.begin(), v.end()); std::cout << "all of v: "; for (auto i : v) std::cout << i << ' '; std::cout << '\n'; std::cout << "only heap: "; for (auto i = v.begin(); i != heap_end; ++i) std::cout << *i << ' '; std::cout << '\n'; }
ÐÑвод:
all of v: 9 5 4 1 1 3 2 6 only heap: 9 5 4 1 1 3 2
[пÑавиÑÑ] См. Ñакже
checks if the given range is a heap (Ñаблон ÑÑнкÑии) |