vector排序,sort
时间: 2025-07-21 20:43:30 浏览: 2
### C++ `vector` 排序方法
为了对 `vector` 进行排序,在C++中可以利用 `<algorithm>` 头文件中的 `std::sort()` 函数。此函数提供了高效的排序算法,默认情况下按照升序排列容器内的元素。
#### 基本语法
要调用 `std::sort()` 对整个 `vector` 进行排序,只需传递两个迭代器参数给它——指向起始位置的一个以及指向结束位置之后的位置的另一个:
```cpp
#include <iostream>
#include <vector>
#include <algorithm> // 包含 std::sort 的声明
using namespace std;
void printVector(const vector<int>& vec){
for(auto elem : vec)
cout << elem << " ";
cout << "\n";
}
int main(){
vector<int> numbers = {5, 2, 9, 1, 7};
// 调用 sort 函数来排序 vector 中的内容
sort(numbers.begin(), numbers.end());
// 输出已排序后的 vector
printVector(numbers);
}
```
这段代码会输出:`1 2 5 7 9`[^1]
如果希望按降序而不是默认的升序进行排序,则可以通过指定第三个自定义比较谓词作为额外参数实现这一点:
```cpp
// 定义一个 lambda 表达式用于逆序比较
auto desc_compare = [](const int& lhs, const int& rhs){return lhs > rhs;};
...
// 使用带有定制化比较运算符版本的 sort 方法
sort(vec.begin(), vec.end(), desc_compare);
printVector(numbers); // 将显示相反顺序的结果
```
上述例子将会打印出:`9 7 5 2 1`[^2]
对于更复杂的数据结构比如对象数组,也可以通过重载小于操作符 (<) 或者提供类似的二元谓词来进行排序。
阅读全文
相关推荐



















