C++ <list> erase 関数

C++ 容器类 <list>C++ コンテナクラス <list>


eraseは list において指定位置の要素を削除するために使用される関数です。

eraseコンテナクラスのメンバ関数であり、リンクリスト内の指定位置にある1つ以上の要素を削除するために使用されます。

list では、eraseの時間計算量はO(1)です。ポインタを調整するだけで済むためです。

単語の意味: erase「消去」を意味し、指定位置の要素を削除することです。


基本構文とパラメータ

eraseコンテナクラスのメンバ関数です。

構文形式

iterator erase(iterator pos);
iterator erase(iterator first, iterator last);

パラメータの説明

  • パラメータ: pos- 削除する要素の位置
  • パラメータ: first, last- 削除する要素の範囲

関数の説明

  • 戻り値: 次の要素を指すイテレータを返します。
  • 効果: 指定位置の要素を削除します。

例

例 1:単一要素の削除

例

#include <iostream>
#include <list>

int main() {
    std::list<int> numbers = {1, 2, 3, 4, 5};

    std::cout << "原始: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    // 2番目の要素を削除
    auto it = std::next(numbers.begin(), 1);
    numbers.erase(it);

    std::cout << "删除后: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    return 0;
}

期待される実行結果:

原始: 1 2 3 4 5
削除後: 1 3 4 5

例 2:複数要素の削除

例

#include <iostream>
#include <list>

int main() {
    std::list<int> numbers = {1, 2, 3, 4, 5, 6, 7};

    std::cout << "原始: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    // 2番目から4番目の要素を削除
    auto first = std::next(numbers.begin(), 1);
    auto last = std::next(numbers.begin(), 4);
    numbers.erase(first, last);

    std::cout << "删除后: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    return 0;
}

期待される実行結果:

原始: 1 2 3 4 5 6 7
削除後: 1 5 6 7

C++ 容器类 <list>C++ コンテナクラス <list>

その他の拡張