c++ remove_if條件函數(shù)怎么寫(xiě)

c++
小樊
87
2024-07-26 13:02:12

在C++中,可以使用remove_if()算法函數(shù)結(jié)合lambda表達(dá)式來(lái)實(shí)現(xiàn)條件刪除。下面是一個(gè)示例代碼:

#include <iostream>
#include <vector>
#include <algorithm>

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

    // 使用remove_if()和lambda表達(dá)式來(lái)刪除偶數(shù)
    numbers.erase(std::remove_if(numbers.begin(), numbers.end(), [](int num) {
        return num % 2 == 0;
    }), numbers.end());

    // 輸出刪除偶數(shù)后的結(jié)果
    for (int num : numbers) {
        std::cout << num << " ";
    }

    return 0;
}

在上面的示例代碼中,我們使用remove_if()算法函數(shù)和lambda表達(dá)式來(lái)刪除偶數(shù)。Lambda表達(dá)式[](int num) { return num % 2 == 0; }會(huì)在remove_if()中被調(diào)用,對(duì)每個(gè)元素進(jìn)行判斷,如果滿(mǎn)足條件則會(huì)被移動(dòng)到數(shù)組末尾,并返回一個(gè)指向被移動(dòng)元素之后的起始位置的迭代器,然后使用erase()來(lái)刪除這些元素。

你可以根據(jù)具體的需求來(lái)編寫(xiě)lambda表達(dá)式中的條件函數(shù),來(lái)實(shí)現(xiàn)不同的條件刪除操作。

0