РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
403 of 815 menu

Функция is_partitioned

Функция is_partitioned проверяет, разбита ли последовательность на две группы по заданному условию. Она возвращает true, если все элементы, удовлетворяющие предикату, идут перед элементами, которые ему не удовлетворяют. В первый параметр мы передаем итератор начала последовательности, во второй - итератор конца, а в третий - предикат (функцию или лямбду), который задает условие разбиения.

Синтаксис

is_partitioned(first, last, pred)

Пример

Давайте проверим, разбит ли вектор {1, 2, 3, 4, 5} на четные и нечетные числа, где все четные идут в начале:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; bool res = is_partitioned(v.begin(), v.end(), [](int x) { return x % 2 == 0; }); cout << res << endl; return 0; }

Результат выполнения кода:

0

Пример

Давайте проверим вектор, который действительно разбит на четные и нечетные числа:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> v = {2, 4, 1, 3, 5}; bool res = is_partitioned(v.begin(), v.end(), [](int x) { return x % 2 == 0; }); cout << res << endl; return 0; }

Результат выполнения кода:

1

Смотрите также

  • функция partition,
    которая разбивает последовательность на две группы
  • функция stable_partition,
    которая устойчиво разбивает последовательность
  • функция is_sorted,
    которая проверяет, отсортирована ли последовательность
  • функция all_of,
    которая проверяет, все ли элементы удовлетворяют условию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить