inplace_merge сливает два отсортированных фрагмента одного массива или вектора в один блок. Средний итератор отделяет левую и правую части.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpAgIM 74 of 696 menu
◀ ▶

Слияние на месте в C++

Алгоритм inplace_merge сливает два отсортированных фрагмента одного массива или вектора в один блок.

Средний итератор отделяет левую и правую части. После вызова весь диапазон остается отсортированным на месте без дополнительного буфера. Запишем вектор и выведем его целиком:

#include <algorithm> #include <iostream> #include <vector> int main() { std::vector<int> data = {1, 3, 2, 4}; std::inplace_merge(data.begin(), data.begin() + 2, data.end()); for (int v : data) { std::cout << v << " "; } std::cout << "\n"; return 0; }

В векторе {10, 20, 5, 15} первые два и последние два элемента уже отсортированы; выполните inplace_merge и выведите результат.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить