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
処理系
- Clang: 23 ✅
- GCC: 16 ✅
- Visual C++: 2026 Update 2 ❌