在C++中,可以使用remove_if()
算法函數結合lambda表達式來實現條件刪除。下面是一個示例代碼:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};
// 使用remove_if()和lambda表達式來刪除偶數
numbers.erase(std::remove_if(numbers.begin(), numbers.end(), [](int num) {
return num % 2 == 0;
}), numbers.end());
// 輸出刪除偶數后的結果
for (int num : numbers) {
std::cout << num << " ";
}
return 0;
}
在上面的示例代碼中,我們使用remove_if()
算法函數和lambda表達式來刪除偶數。Lambda表達式[](int num) { return num % 2 == 0; }
會在remove_if()
中被調用,對每個元素進行判斷,如果滿足條件則會被移動到數組末尾,并返回一個指向被移動元素之后的起始位置的迭代器,然后使用erase()
來刪除這些元素。
你可以根據具體的需求來編寫lambda表達式中的條件函數,來實現不同的條件刪除操作。