最終更新日時(UTC):
が更新

履歴 編集

function
<inplace_vector>

std::inplace_vector::insert(C++26)

constexpr iterator
  insert(const_iterator position,
         const T& x);              // (1) C++26

constexpr iterator
  insert(const_iterator position,
         T&& x);                   // (2) C++26

constexpr iterator
  insert(const_iterator position,
         size_type n,
         const T& x);              // (3) C++26

template <class InputIterator>
constexpr iterator
  insert(const_iterator position,
         InputIterator first,
         InputIterator last);      // (4) C++26

constexpr iterator insert(const_iterator position, initializer_list<T> il); // (5) C++26

概要

任意の位置に新たな要素を挿入する。

  • (1) : positionの前にxのコピーを挿入する。
  • (2) : positionの前にxをムーブ挿入する。
  • (3) : positionの前にn個のxのコピーを挿入する。
  • (4) : positionの前にイテレータ範囲[first, last)の要素を挿入する。
  • (5) : positionの前に初期化子リストilの要素を挿入する。

戻り値

挿入された要素を指すイテレータ。(3), (4), (5)では挿入された最初の要素を指すイテレータ。要素が挿入されなかった場合はpositionを指すイテレータ。

例外

挿入後のサイズがNを超える場合、bad_alloc例外を送出する。

計算量

挿入される要素の数と挿入位置からend()までの要素数に対して線形時間。

#include <print>
#include <inplace_vector>

int main()
{
  std::inplace_vector<int, 10> iv = {1, 2, 3};

  // (1) 先頭にコピー挿入
  iv.insert(iv.begin(), 0);

  // (3) 末尾に2個の9を挿入
  iv.insert(iv.end(), 2, 9);

  // (5) 初期化子リストで挿入
  iv.insert(iv.begin() + 2, {10, 20});

  for (int x : iv) {
    std::println("{} ", x);
  }
}

出力

0
1
10
20
2
3
9
9

バージョン

言語

  • C++26

処理系

参照