std::is_heap
Материал из cppreference.com
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Определено в заголовочном файле <algorithm>
|
||
template< class RandomIt > bool is_heap( RandomIt first, RandomIt last ); |
(1) | |
template< class RandomIt, class Compare > bool is_heap( RandomIt first, RandomIt last, Compare comp ); |
(2) | |
Проверяет, является ли элементы в диапазоне
[first, last)
являются' кучи. Оригинал:
Checks if the elements in range
[first, last)
are a heap. Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Первая версия
is_heap
operator< использует для сравнения элементов, в то время как второй использует данную функцию сравнения comp
.Оригинал:
The first version of
is_heap
uses operator< to compare elements, whereas the second uses the given comparison function comp
.Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Содержание |
[править] Параметры
first, last | - | диапазон элементов для изучения
Оригинал: the range of elements to examine Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. |
comp | - | comparison function which returns true if the first argument is less than the second. The signature of the comparison function should be equivalent to the following: bool cmp(const Type1 &a, const Type2 &b); The signature does not need to have const &, but the function must not modify the objects passed to it. |
Требования к типам | ||
-RandomIt должен соответствовать требованиям RandomAccessIterator .
|
[править] Возвращаемое значение
true если диапазон' кучи, false иначе.
Оригинал:
true if the range is heap, false otherwise.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
[править] Сложность
Линейный в расстоянии между
first
и last
Оригинал:
Linear in the distance between
first
and last
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
[править] Заметки
' Кучу целый ряд элементов
[f,l)
, который имеет следующие свойства:Оригинал:
A heap is a range of elements
[f,l)
that has the following properties:Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
- *f является крупнейшим элементом в ассортиментеОригинал:*f is the largest element in the rangeТекст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда. - Новый элемент может быть добавлена с помощью std::push_heap()Оригинал:a new element can be added using std::push_heap()Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда. - Первый элемент можно удалить с помощью std::pop_heap()Оригинал:the first element can be removed using std::pop_heap()Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
-
Фактическое расположение элементов, определяется реализацией.
Оригинал:
The actual arrangement of the elements is implementation defined.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
[править] Пример
#include <iostream> #include <algorithm> int main() { std::vector<int> v { 3, 1, 4, 1, 5, 9 }; std::cout << "initially, v: "; for (auto i : v) std::cout << i << ' '; std::cout << '\n'; if (!std::is_heap(v.begin(), v.end())) { std::cout << "making heap...\n"; std::make_heap(v.begin(), v.end()); } std::cout << "after make_heap, v: "; for (auto i : v) std::cout << i << ' '; std::cout << '\n'; }
Вывод:
initially, v: 3 1 4 1 5 9 making heap... after make_heap, v: 9 5 4 1 1 3
[править] См. также
(C++11) |
находит наибольшее поддиапазон, что это куча Оригинал: finds the largest subrange that is heap Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) |