在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)不同的條件刪除操作。