在C++中,可以使用標準庫中的std::partition
函數來實現partition算法。std::partition
函數接受一個范圍的迭代器和一個謂詞函數作為參數,并根據謂詞函數將范圍分割為兩部分,使得滿足謂詞函數的元素在前半部分,不滿足謂詞函數的元素在后半部分。以下是一個示例代碼:
#include <iostream>
#include <vector>
#include <algorithm>
bool isEven(int n) {
return n % 2 == 0;
}
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
std::partition(nums.begin(), nums.end(), isEven);
std::cout << "Partitioned array: ";
for (int num : nums) {
std::cout << num << " ";
}
return 0;
}
在上面的示例中,我們定義了一個isEven
函數用來判斷一個整數是否為偶數。然后我們使用std::partition
函數將nums
數組按照isEven
函數進行分割,使得偶數在前半部分,奇數在后半部分。最后輸出分割后的結果。