C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++のSTL listから最後の要素を削除する方法

C++では、STLのstd::listを使うことで、連結リストを手軽に扱うことができます。本記事では、リストの末尾にある最後の要素を削除する方法を解説します。

例えば、[10, 41, 54, 20, 23, 69, 84, 75]という要素を持つリストがあった場合、最後の要素は75です。この最後の要素を削除するには、std::listが提供するpop_back()メンバ関数を使用します。この関数を呼び出すだけで、リストの末尾から要素を取り除くことができます。

サンプルコード

以下のコードでは、配列の要素をリストに格納した後、pop_back()を使って最後の要素を削除し、削除前後のリストの内容を表示しています。

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

void display(list<int> my_list){
    for (auto it = my_list.begin(); it != my_list.end(); ++it)
        cout << *it << " ";
}

int main() {
    int arr[] = {10, 41, 54, 20, 23, 69, 84, 75};
    int n = sizeof(arr)/sizeof(arr[0]);

    list<int> my_list;
    for(int i = 0; i<n; i++){
        my_list.push_back(arr[i]);
    }

    cout << "削除前のリスト: ";
    display(my_list);

    my_list.pop_back(); // 最後の要素を削除

    cout << "\n削除後のリスト: ";
    display(my_list);
}

実行結果

削除前のリスト: 10 41 54 20 23 69 84 75
削除後のリスト: 10 41 54 20 23 69 84

ポイントの解説

pop_back()は、リストが空でない場合にのみ呼び出すようにしてください。空のリストに対して呼び出すと、未定義動作となります。安全に扱うには、empty()関数でリストが空かどうかを事前にチェックするのがおすすめです。

また、末尾の要素の値だけを取得したい場合は、back()関数を使用します。削除せずに値を参照したい場合に便利です。

  1. 【Android入門】ListViewに表示したLinkedListから要素を削除する方法

    はじめに 本記事では、AndroidアプリのListViewに表示しているLinkedList(リンクリスト)から要素を削除する方法を、実際に動作するサンプルコードとともに解説します。名前を入力してリストへ追加し、削除ボタンで該当データを取り除く、シンプルなサンプルアプリを作成します。 ステップ1:新規プロジェクトの作成 まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要事項を入力してプロジェクトを作成してください。 ステップ2:レイアウトファイル(activity_main.xml)の作成 res/layou

  2. Redis LREMコマンドの使い方|リストから要素を1つまたは複数削除する方法

    このチュートリアルでは、キーに保存されたリスト値から、特定の要素を1つまたは複数削除する方法を解説します。そのために使用するのが、RedisのLREMコマンドです。 LREMコマンドとは LREMコマンドは、キーに格納されたリストから、指定した要素の出現箇所をcount引数で指定した回数だけ削除します。引数countの値によって、削除の動作は以下のように変化します。 count > 0 の場合:先頭(head)から末尾(tail)に向かって、指定した要素をcount個削除します。 count < 0 の場合:末尾(tail)から先頭(head)に向かって、指定した要素をcount