最終更新日時:
が更新

履歴 編集

function
<forward_list>

std::forward_list::erase_after(C++11)

iterator erase_after(const_iterator position); // (1)
iterator erase_after(const_iterator position,
                     const_iterator last);     // (2)

概要

指定された要素をコンテナから削除する

要件

第1引数positionの次が間接参照可能なイテレータであること

効果

  • (1) : positionが指す次の要素が削除される。
  • (2) : (position, last)で示される範囲の要素が削除される。

戻り値

削除された要素の次の要素を指すイテレータを返す。そのような要素が存在しない場合は、end()を返す。

例外

投げない

計算量

削除される要素の数と同じ回数のTのデストラクタが実行される。

#include <iostream>
#include <forward_list>
#include <iterator>

int main()
{
  // 1引数版
  {
    std::forward_list<int> ls = {1, 2, 3, 4, 5};

    // 4を削除
    ls.erase_after(std::next(ls.before_begin(), 3));

    for (int x : ls) { std::cout << x << ' '; }
  }
  std::cout << std::endl;

  // 2引数版
  {
    std::forward_list<int> ls = {1, 2, 3, 4, 5};

    // 3以降を削除
    ls.erase_after(std::next(ls.before_begin(), 2), ls.end());

    for (int x : ls) { std::cout << x << ' '; }
  }
  std::cout << std::endl;
}

出力

1 2 3 5 
1 2 

バージョン

言語

  • C++11

処理系

参照