c++sort对vector
时间: 2025-03-26 10:15:56 浏览: 34
### 使用 C++ `std::sort` 函数对 `std::vector` 进行排序
在 C++ 中,标准库提供了预定义并可以直接使用的 `std::sort()` 函数来执行排序操作[^1]。对于 `std::vector<int>` 类型的数据结构,默认情况下可以使用 `<` 操作符来进行升序排列。
#### 对整数类型的 `std::vector` 排序
当处理简单的数据类型如整数时,只需调用 `std::sort` 即可完成排序工作:
```cpp
#include <algorithm>
#include <vector>
int main() {
std::vector<int> numbers = {5, 2, 9, 1};
// 调用 sort 函数进行默认升序排序
std::sort(numbers.begin(), numbers.end());
return 0;
}
```
#### 自定义比较器实现降序或其他复杂逻辑排序
如果希望按照不同的顺序(比如降序),则可以通过传递第三个参数给 `std::sort` 来指定自定义的比较方式。这里展示了一个通过 lambda 表达式创建匿名函数作为比较器的例子[^3]:
```cpp
#include <algorithm>
#include <vector>
int main() {
std::vector<int> numbers = {5, 2, 9, 1};
// 定义一个 lambda 表达式的比较器用于降序排序
auto compare_descending = [](const int& lhs, const int& rhs) -> bool {
return lhs > rhs;
};
// 应用带有自定义比较器的 sort 函数
std::sort(numbers.begin(), numbers.end(), compare_descending);
return 0;
}
```
#### 处理更复杂的对象类型
对于像 `student_info` 这样的复合类型,在没有重载 `<` 操作符的情况下直接尝试对其进行排序是没有意义的[^2]。此时应该提供一个合适的谓词(predicate)告诉编译器应该如何比较两个元素之间的大小关系。这同样可以用 lambda 或者单独定义的一个二元函数来达成目的。
阅读全文
相关推荐




















