[C++]リストの特定の範囲を削除するには?

C++

どうも、ちょげ(@chogetarou)です。

リスト(List)の特定の範囲を削除する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

リスト(List)の特定の範囲を削除するには、erase()を使います。

まず、リストからerase()を呼び出します。

そして、erase()の第1引数に範囲の最初の位置、第2引数に範囲の最後の位置をイテレータの要素で指定します。

//myList=対象のリスト, 
//first=範囲の最初の位置(イテレータの要素), end=範囲の最後の位置(イテレータの要素)
myVect.erase(first, end);

上記のerase()は、対象のリスト(List)の第1引数から第2引数までの範囲を削除します。

スポンサーリンク

使用例

#include <iostream>
#include <list>
using namespace std;

int main(void){
    
    list<string> nums = { "one", "two", "three", "four", "five", "six", "seven"};
    
    auto first = next(nums.begin(), 3);
    auto end = next(nums.begin(), 6);
    nums.erase(first, end);
    
    for(string item: nums) {
        cout << item << endl;
    }
    
    return 0;
}
出力:
one
two
three
seven

コメント

タイトルとURLをコピーしました