📅  最后修改于: 2023-12-03 15:09:05.469000             🧑  作者: Mango
C++中的deque是一种双端队列容器,支持在队列的头部和尾部进行快速插入和删除操作。当我们需要对deque中的元素进行排序时,可以使用C++ STL提供的sort函数来实现。
sort函数位于<algorithm>
头文件中,它可以通过传递一个起始迭代器和一个结束迭代器来对指定的区间进行排序。其基本语法如下:
template<class RandomIt>
void sort(RandomIt first, RandomIt last);
template< class RandomIt, class Compare >
void sort(RandomIt first, RandomIt last, Compare comp);
其中,第一个版本使用默认的比较函数std::less进行排序,第二个版本可以自定义比较函数comp用于排序。
下面的代码演示了如何使用sort函数对deque进行排序:
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;
int main()
{
deque<int> nums{3, 5, 1, 4, 2};
sort(nums.begin(), nums.end()); //默认排序
for (auto num : nums)
cout << num << ' ';
cout << endl;
sort(nums.rbegin(), nums.rend()); //逆序排序
for (auto num : nums)
cout << num << ' ';
cout << endl;
return 0;
}
该程序使用sort函数对deque中的元素进行排序。第一次调用sort函数使用的是默认的排序方式,第二次使用了自定义的比较函数,对deque中的元素进行逆序排序。执行上述代码后,输出结果如下:
1 2 3 4 5
5 4 3 2 1
## 如何对deque进行排序
C++中的deque是一种双端队列容器,支持在队列的头部和尾部进行快速插入和删除操作。当我们需要对deque中的元素进行排序时,可以使用C++ STL提供的sort函数来实现。
### sort函数的使用
sort函数位于`<algorithm>`头文件中,它可以通过传递一个起始迭代器和一个结束迭代器来对指定的区间进行排序。其基本语法如下:
```c++
template<class RandomIt>
void sort(RandomIt first, RandomIt last);
template< class RandomIt, class Compare >
void sort(RandomIt first, RandomIt last, Compare comp);
其中,第一个版本使用默认的比较函数std::less进行排序,第二个版本可以自定义比较函数comp用于排序。
下面的代码演示了如何使用sort函数对deque进行排序:
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;
int main()
{
deque<int> nums{3, 5, 1, 4, 2};
sort(nums.begin(), nums.end()); //默认排序
for (auto num : nums)
cout << num << ' ';
cout << endl;
sort(nums.rbegin(), nums.rend()); //逆序排序
for (auto num : nums)
cout << num << ' ';
cout << endl;
return 0;
}
该程序使用sort函数对deque中的元素进行排序。第一次调用sort函数使用的是默认的排序方式,第二次使用了自定义的比较函数,对deque中的元素进行逆序排序。执行上述代码后,输出结果如下:
1 2 3 4 5
5 4 3 2 1