c++ vector sort的用法是什么

   2025-02-15 8450
核心提示:C++ 的 vector 类提供了一个 sort 函数,用于对向量中的元素进行排序。sort 函数的用法如下:#include vector#include algorithm

C++ 的 vector 类提供了一个 sort 函数,用于对向量中的元素进行排序。sort 函数的用法如下:

#include <vector>#include <algorithm>int main() {    std::vector<int> vec = {5, 2, 8, 1, 9};    // 对向量中的元素进行升序排序    std::sort(vec.begin(), vec.end());    // 输出排序后的结果    for (int num : vec) {        std::cout << num << " ";    }    return 0;}

输出结果为:1 2 5 8 9。

sort 函数的使用需要包含 <algorithm> 头文件。该函数接受两个迭代器作为参数,分别指定排序的范围,其中 vec.begin() 指向向量的第一个元素,vec.end() 指向向量的最后一个元素的下一个位置。

默认情况下,sort 函数会按照升序对元素进行排序。如果需要按照降序进行排序,可以使用 std::greater<int>() 函数对象作为 sort 函数的第三个参数,如下所示:

std::sort(vec.begin(), vec.end(), std::greater<int>());

此时输出结果为:9 8 5 2 1。

除了基本数据类型的排序,sort 函数还可以对自定义对象进行排序,只需要重载对象的 < 运算符或者使用自定义的比较函数即可。例如,对一个存储自定义对象的 vector 进行排序:

#include <vector>#include <algorithm>struct Person {    std::string name;    int age;};bool compareByAge(const Person& p1, const Person& p2) {    return p1.age < p2.age;}int main() {    std::vector<Person> people = { {"Alice", 25}, {"Bob", 20}, {"Charlie", 30} };    // 对向量中的元素按照年龄进行排序    std::sort(people.begin(), people.end(), compareByAge);    // 输出排序后的结果    for (const Person& person : people) {        std::cout << person.name << ": " << person.age << std::endl;    }    return 0;}

输出结果为:

Bob: 20Alice: 25Charlie: 30

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言