Namespaces
Variants

std::forward_list<T,Allocator>:: erase_after

From cppreference.net
iterator erase_after ( const_iterator pos ) ;
(1) (C++11以降)
(C++26以降constexpr)
iterator erase_after ( const_iterator first, const_iterator last ) ;
(2) (C++11以降)
(C++26以降constexpr)

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

1) pos の次の要素を削除します。
pos に続くイテレータがデリファレンス可能でない場合、動作は未定義です。
2) 範囲 ( first , last ) 内の要素を削除します。
範囲 ( first , last ) 内のいずれかのイテレータがデリファレンス可能でない場合、動作は未定義です。

目次

パラメータ

pos - 削除する要素の前の要素を指すイテレータ
first, last - 削除する要素の 範囲 を定義するイテレータのペア

戻り値

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

計算量

1) 定数。
2) first last の間の距離に対して線形。

例外

例外を送出しません。

#include <forward_list>
#include <iostream>
#include <iterator>
int main()
{
    std::forward_list<int> l = {1, 2, 3, 4, 5, 6, 7, 8, 9};
//  l.erase(l.begin()); // エラー: erase()関数は存在しません
    l.erase_after(l.before_begin()); // 最初の要素を削除
    for (auto n : l)
        std::cout << n << ' ';
    std::cout << '\n';
    auto fi = std::next(l.begin());
    auto la = std::next(fi, 3);
    l.erase_after(fi, la);
    for (auto n : l)
        std::cout << n << ' ';
    std::cout << '\n';
}

出力:

2 3 4 5 6 7 8 9
2 3 6 7 8 9

関連項目

内容をクリアする
(公開メンバ関数)