vector容器sort排序
时间: 2023-10-30 10:09:17 浏览: 180
你可以使用C++的标准库中的`std::sort`函数来对`vector`容器进行排序。`std::sort`函数接受两个迭代器参数,表示要排序的范围。以下是一个简单的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {5, 3, 1, 4, 2};
std::sort(vec.begin(), vec.end());
for (const auto& element : vec) {
std::cout << element << " ";
}
return 0;
}
```
该代码将输出已排序的向量元素:1 2 3 4 5。你可以通过调用`std::sort`函数来对`vector`容器进行升序排序。如果要进行降序排序,你可以传递第三个参数作为比较函数。
希望这可以帮到你!如果还有其他问题,请随时提问。
相关问题
vector容器sort排序自定义
`std::vector`容器在C++ STL中默认使用快速排序(QuickSort)进行元素排序,但是如果你想按照自定义的比较规则对元素进行排序,你可以通过提供一个自定义的`compare`函数或者直接利用lambda表达式来实现。
1. 自定义函数排序:你需要定义一个函数模板,该函数接受两个类型的元素作为输入,并返回一个布尔值表示它们的相对顺序。例如:
```cpp
bool myCompare(const MyType& a, const MyType& b) {
// 根据你的需求编写比较逻辑,如按年龄、字符串长度等
return a.age < b.age;
}
// 然后在排序时指定这个函数
std::sort(your_vector.begin(), your_vector.end(), myCompare);
```
2. Lambda表达式排序:如果你的排序逻辑比较简单,可以使用lambda表达式来替代自定义函数。例如:
```cpp
your_vector.sort([](const MyType& a, const MyType& b) { return a.age < b.age; });
```
这里假设`MyType`是一个拥有`age`成员变量的类。
vector容器sort降序排序
要对vector容器进行降序排序,可以使用sort()函数并传入一个比较函数greater<int>(),告诉sort()函数按照降序排序。下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> nums = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
// 升序排序并打印结果
sort(nums.begin(), nums.end());
for (int num : nums) {
cout << num << " ";
}
cout << endl;
// 降序排序并打印结果
sort(nums.begin(), nums.end(), greater<int>());
for (int num : nums) {
cout << num << " ";
}
cout << endl;
return 0;
}
```
在上面的代码中,我们创建了一个名为nums的vector容器,并初始化了一些整数值。然后,我们先调用了一次sort()函数,对容器中的元素进行升序排序,并使用一个循环打印出排序后的结果。接着,我们又调用了一次sort()函数,并传入了一个比较函数greater<int>(),用于告诉sort()函数按照降序排序。最后,我们再次使用一个循环打印出排序后的结果。
需要注意的是,sort()函数会修改容器中的元素顺序,因此在排序前最好将容器备份一下,以免意外修改到原有数据。
阅读全文