[C++]リストの末尾の要素を削除するには?

C++

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

リスト(List)の最後の要素を削除する方法を紹介します。

スポンサーリンク

方法

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

リスト(List)の末尾の要素を削除する方法は、3つあります。

pop_back()

1つ目は、pop_back()を使う方法です。

リストからpop_back()を引数なしで呼び出します。

//myList=対象のリスト
myList.pop_back();

上記のpop_back()は、対象のリスト(List)の末尾の要素を削除します。

使用例

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

int main(void){
    
    list<string> nums = { "one", "two", "three", "four", "five", "six", "seven", "eight"};
    
    nums.pop_back();
    
    for(string item: nums) {
        cout << item << endl;
    }
    
    return 0;
}
出力:
one
two
three
four
five
six
seven

resize()

2つ目は、resize()を使う方法です。

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

そして、resize()の引数に、要素数を「-1」した値を指定します。

//myList=対象のリスト
myList.resize(myList.size() - 1);

上記のresize()は、対象のリスト(List)の末尾の要素を削除します。

使用例

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

int main(void){
    
    list<string> nums = { "one", "two", "three", "four", "five", "six", "seven", "eight"};
    
    nums.resize(nums.size() - 1);
    
    for(string item: nums) {
        cout << item << endl;
    }
    
    return 0;
}
出力:
one
two
three
four
five
six
seven

erase()

3つ目は、erase()を使う方法です。

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

そして、erase()の引数に、リストから呼び出したend()を「-1」した値を指定します。

//myList=対象のリスト
myList.erase(--myList.end());

上記のerase()は、対象のリスト(List)の末尾の要素を削除します。

使用例

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

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

まとめ

リスト(List)の末尾の要素を削除する方法は、次の3つです。

  • pop_back()を使う方法
    myList.pop_back();
  • resize()を使う方法
    myList.resize(myList.size() - 1);
  • erase()を使う方法
    myList.erase(--myList.end());

コメント

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