怎么对deque容器进行排序?
时间: 2023-08-23 18:05:14 浏览: 73
你可以使用STL提供的sort函数来对deque容器进行排序。sort函数接受两个迭代器作为参数,表示排序的范围。在对deque容器排序时,你可以传递deque容器的begin()和end()函数作为sort函数的参数,表示对整个容器进行排序。下面是一个示例代码:
```
#include <iostream>
#include <deque>
#include <algorithm>
int main() {
std::deque<int> myDeque = {5, 2, 9, 1, 7};
std::sort(myDeque.begin(), myDeque.end());
for (const auto& num : myDeque) {
std::cout << num << " ";
}
return 0;
}
```
以上代码将输出:1 2 5 7 9,表示deque容器已经按升序排序。你也可以使用std::greater作为第三个参数传递给sort函数,以实现降序排序。
相关问题
容器数组自动排序
可以使用 STL 的 sort 函数来对容器数组进行自动排序,例如对一个 vector<int> 数组进行升序排序:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums = {5, 2, 9, 1, 5, 6};
std::sort(nums.begin(), nums.end());
for (const auto& num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:1 2 5 5 6 9
也可以通过重载比较函数来实现对容器数组的降序排序,例如对一个 deque<int> 数组进行降序排序:
```cpp
#include <iostream>
#include <deque>
#include <algorithm>
bool cmp(int a, int b) {
return a > b;
}
int main() {
std::deque<int> nums = {5, 2, 9, 1, 5, 6};
std::sort(nums.begin(), nums.end(), cmp);
for (const auto& num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:9 6 5 5 2 1
什么是 STL? STL中常用的容器有哪些?
STL是C++标准库中的一个组件,全称为Standard Template Library,是一个通用的、高效的、可复用的程序库,提供了多种常用的数据结构和算法。
常用的容器有:
1. vector:动态数组,支持随机访问,可以快速地在末尾添加或删除元素。
2. list:双向链表,支持双向迭代器,可以在任何位置插入或删除元素。
3. deque:双端队列,支持随机访问,可以在两端快速添加或删除元素。
4. set:集合,支持自动排序,可以快速地查找元素。
5. map:映射,支持自动排序,可以快速地根据键查找值。
6. unordered_set:无序集合,不支持自动排序,但查找元素的速度比set更快。
7. unordered_map:无序映射,不支持自动排序,但查找元素的速度比map更快。