vector内の特定要素を検索して削除する方法は何ですか?

C++では、std::vectorのerase関数を使用して特定の要素を削除することができます。

erase関数を使用して要素を削除する例を以下に示します。

#include <iostream>
#include <vector>

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

    int elementToDelete = 3;

    // 查找元素
    auto it = std::find(myVector.begin(), myVector.end(), elementToDelete);

    // 删除元素
    if (it != myVector.end()) {
        myVector.erase(it);
        std::cout << "Element deleted successfully." << std::endl;
    } else {
        std::cout << "Element not found." << std::endl;
    }

    // 打印剩余元素
    for (int element : myVector) {
        std::cout << element << " ";
    }
    std::cout << std::endl;

    return 0;
}

上記の例では、まずstd::find関数を使用して指定された要素のイテレータを検索します。要素が存在する場合、erase関数を使用してその要素を削除します。最後に、残りの要素を反復処理して表示します。

erase関数を使用して要素を削除すると、後続の要素が詰められるため、元の反復子は無効になります。したがって、反復子を引き続き使用したい場合は、erase関数が返す反復子を次の反復子として使用することでエラーを回避できます。

bannerAds