使用STL 中双端队列容器解决奇偶排序问题 c++20完整代码
时间: 2024-02-28 19:54:06 浏览: 94
解析c++中的队列排序问题
好的,以下是使用C++20的STL双端队列容器来解决奇偶排序问题的完整代码:
```c++
#include <iostream>
#include <deque>
#include <algorithm>
int main() {
std::deque<int> dq;
int num;
// 输入数字
std::cout << "请输入数字,以-1结束输入:" << std::endl;
while (true) {
std::cin >> num;
if (num == -1) {
break;
}
dq.push_back(num);
}
// 对双端队列进行奇偶排序
std::partition(dq.begin(), dq.end(), [](int n){ return n % 2 == 0; });
// 输出排序后的结果
std::cout << "奇偶排序后的结果为:" << std::endl;
for (const auto& n : dq) {
std::cout << n << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的代码中,我们首先定义了一个双端队列容器 `std::deque<int> dq`,然后通过循环输入数字并将其加入到队列中。
接着,我们使用STL中的 `std::partition` 算法对双端队列进行了奇偶排序,这个算法会将满足条件的元素移到容器的前面,不满足条件的元素移到容器的后面。
最后,我们遍历输出排序后的结果。
需要注意的是,我们在使用 `std::cin` 输入数字时,如果输入的数字是负数,我们将其作为终止输入的标志,这个标志可以根据实际情况调整。
阅读全文