最終更新日時(UTC): 2026年02月17日 14時22分33秒
Akira Takahashi が更新

履歴 編集

function template
<flat_map>

# std::flat_multimap::emplace_hint(C++23)

    template <class... Args>
    iterator
      emplace_hint(const_iterator hint,
                   Args&&... args);     // (1) C++23
    template <class... Args>
    constexpr iterator
      emplace_hint(const_iterator hint,
                   Args&&... args);     // (1) C++26

## 概要

要素が配置されるべき場所を示唆するパラメータ `hint` を使って、コンテナに新しい要素を挿入する。要素は直接構築される（コピーもムーブもされない）。要素のコンストラクタはこの関数に渡された引数と同じ引数で呼ばれる。

## パラメータ

- `hint` : 新しい要素をどこへ挿入するかを示唆するために使われるイテレータ
- `args...` : 要素のコンストラクタへ転送される引数パック

## 戻り値

追加された要素を指すイテレータ。

## 計算量

コンテナサイズ（`size()`）に対して線形

## 例

    #include <flat_map>
    #include <iostream>

    int main()
    {
      std::flat_multimap<int, char> fm;

      fm.emplace(1, 'A');

      // キー2の要素が最後尾に追加されることが事前にわかっているので、fm.end()をヒントとして与える
      fm.emplace_hint(fm.end(), 2, 'B');

      for (const auto& [key, value] : fm) {
        std::cout << key << " : " << value << std::endl;
      }
    }

### 出力

    1 : A
    2 : B

## バージョン

### 言語

- C++23

### 処理系

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

## 関連項目

名前 | 説明
--- | ---
`flat_multimap::insert` | 要素を挿入する
`flat_multimap::insert_range` | Rangeを挿入する
`flat_multimap::emplace` | 要素を直接構築する

## 参照

- P3372R3 constexpr containers and adaptors