以下是一个按元素原始位置的奇偶性稳定划分std::vector的示例代码:
#include
#include
// 定义一个判断元素是奇数还是偶数的函数
bool isEven(int num) {
return num % 2 == 0;
}
// 定义一个按元素原始位置的奇偶性稳定划分std::vector的函数
std::vector stablePartition(const std::vector& nums) {
std::vector result;
std::vector evenNums;
std::vector oddNums;
// 遍历原始std::vector,将元素根据奇偶性分别放入evenNums和oddNums
for (int i = 0; i < nums.size(); i++) {
if (isEven(nums[i])) {
evenNums.push_back(nums[i]);
} else {
oddNums.push_back(nums[i]);
}
}
// 将evenNums和oddNums的元素依次放入result
for (int i = 0; i < evenNums.size(); i++) {
result.push_back(evenNums[i]);
}
for (int i = 0; i < oddNums.size(); i++) {
result.push_back(oddNums[i]);
}
return result;
}
int main() {
std::vector nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
std::vector result = stablePartition(nums);
// 输出结果
for (int i = 0; i < result.size(); i++) {
std::cout << result[i] << " ";
}
std::cout << std::endl;
return 0;
}
在上述代码中,我们首先定义了一个isEven
函数,用于判断一个数是奇数还是偶数。然后,我们定义了一个stablePartition
函数,该函数接受一个std::vector参数并返回一个按元素原始位置的奇偶性稳定划分的std::vector。在stablePartition
函数中,我们遍历原始std::vector,将元素根据奇偶性分别放入evenNums
和oddNums
两个std::vector中。最后,我们将evenNums
和oddNums
的元素依次放入result
中。最后,在main
函数中,我们定义了一个std::vector并调用stablePartition
函数进行划分,然后输出结果。
上一篇:按元素行的和排序 VB.Net
下一篇:按元素值拆分列表