template <class... Args>
constexpr iterator emplace(const_iterator position, Args&&... args); // (1) C++26
概要
任意の位置に要素を直接構築で挿入する。
引数args...から直接構築した要素をpositionの前に挿入する。
戻り値
挿入された要素を指すイテレータ。
例外
size() == Nの場合、bad_alloc例外を送出する。
計算量
挿入位置からend()までの要素数に対して線形時間。
例
#include <print>
#include <inplace_vector>
#include <string>
#include <utility>
int main()
{
std::inplace_vector<std::pair<int, std::string>, 5> iv;
iv.emplace(iv.begin(), 1, "one");
iv.emplace(iv.end(), 3, "three");
iv.emplace(iv.begin() + 1, 2, "two");
for (const auto& [k, val] : iv) {
std::println("{}:{}", k, val);
}
}
出力
1:one
2:two
3:three
バージョン
言語
- C++26
処理系
- Clang: 23 ✅
- GCC: 16 ✅
- Visual C++: 2026 Update 2 ❌