Spec-Zone.ru › C++

std::flat_multiset<Key,Compare,KeyContainer>::replace

void replace( container_type&& cont );
(начиная с C++23)

Заменяет базовый контейнер c. Эквивалентно: c = std::move(cont);.

Элементы cont должны быть отсортированы относительно compare. В противном случае поведение не определено.

Параметры

cont - отсортированный контейнер типа KeyContainer, содержимое которого будет перемещено в *this

Сложность

Равна сложности std::move, применённого к адаптированному контейнеру.

Пример

#include <algorithm>
#include <cassert>
#include <flat_set>
#include <print>
#include <utility>
#include <vector>

int main()
{
    std::vector<int> keys{1, 2, 3};
    assert(std::ranges::is_sorted(keys));

    std::flat_multiset<int> set;
    assert(set.empty());

    set.replace(std::move(keys));
    assert(set.size() == 3);
    assert(keys.empty());

    std::println("{}", set);
}

Вывод:

{1, 2, 3}

См. также

extract
извлекает базовый контейнер
(функция-член общего назначения)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/container/flat_multiset/replace

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API