GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • cpprefjp - C++日本語リファレンス
  • GitHub Project

This view

  • Original page
  • New address

GeezerVison is showing cpprefjp.github.io — std::vector::append_range - cpprefjp C++日本語リファレンス

  1. リファレンス
  2. vector
  3. vector
  4. append_range

最終更新日時: 2026年05月21日 15時03分06秒 (JST)
Akira Takahashi が更新

履歴 編集

function template
<vector>

std::vector::append_range(C++23)

template <container-compatible-range<T> R>
constexpr void append_range(R&& rg); // C++23

概要

Rangeの要素を末尾へ追加する。

テンプレートパラメータ制約

型Tが*ranges::begin(rg)からvectorコンテナへのEmplaceConstructibleかつMoveInsertableであること。

効果

Rangergの各要素を、末尾に追加する。

戻り値

なし

計算量

要素を追加した後のsize()が要素を追加する前のcapacity()よりも大きい場合は領域の再確保が生じ、要素を追加した後のsize()に比例する。領域の再確保が発生しない場合は、ranges::distance(rg)に比例する。

C++26 : Rがranges::approximately_sized_rangeであり、ranges::distance(rg) <= ranges::reserve_hint(rg)がtrueの場合、再確保は高々1回しか行われない。Rがranges::forward_rangeで、かつranges::approximately_sized_rangeではない場合も同様である。

例

#include <iostream>
#include <vector>

int main()
{
  std::vector<int> v = {1, 2, 3};
  const int a[3] = {4, 5, 6};

  // Rangeを末尾に追加
  v.append_range(a);

  for (int i : v) {
    std::cout << i << " ";
  }
  std::cout << std::endl;
}

出力

1 2 3 4 5 6 

関連項目

名前 説明
push_back 末尾へ要素追加
emplace_back 末尾へ直接構築

参照

  • P2846R6 reserve_hint: Eagerly reserving memory for not-quite-sized lazy ranges
    • C++26で、ranges::approximately_sized_rangeの要素数近似値を利用して再確保が高々1回に抑えられるよう計算量保証を追加
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.