最終更新日時: 2026年07月22日 16時08分23秒 (JST)
rotarymars が更新

履歴 編集

function
<flat_set>

# std::flat_multiset::replace(C++23)

    void replace(container_type&& cont);           // (1) C++23
    constexpr void replace(container_type&& cont); // (1) C++26

## 概要

値のコンテナを置き換える。

## 効果

`flat_multiset` クラスが内部で保持している `container_type` を `c` とすると、以下と等価。

    c = std::move(cont);

## 事前条件

- `cont` が `key_compare` に基づいてソートされていること。

## 計算量

`cont` をムーブした計算量と同じ。

## 例

    #include <algorithm>
    #include <cassert>
    #include <flat_set>
    #include <iostream>
    #include <string>
    #include <utility>
    #include <vector>

    int main()
    {
      std::vector<std::string> keys = {"Alice", "Bob", "Carol"};

      // 事前条件の確認
      assert(std::is_sorted(keys.begin(), keys.end()));

      std::flat_multiset<std::string> fs;

      std::cout << fs.size() << std::endl;

      fs.replace(std::move(keys));

      std::cout << fs.size() << std::endl;
      std::cout << std::endl;

      std::cout << "{" << std::endl;
      for (const std::string& i: fs) {
        std::cout << "  " << i << "," << std::endl;
      }
      std::cout << "}" << std::endl;
    }

### 出力

    0
    3

    {
      Alice,
      Bob,
      Carol,
    }

## バージョン

### 言語

- C++23

### 処理系

- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??

## 参照

- P3372R3 constexpr containers and adaptors