【C++】关于sort()的使用

头文件:#include <algorithm>

例子如下:

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main()
{  
    string a[] = {"123", "124","112","102","111"};
    sort(a, a+5);
    for (int i = 0; i < 5; i++)
    {
        cout<<a[i]<<" ";
    }
    return 0;
}


 使用问题:因为sort实现是用迭代器实现的,所以他一般参数范围是[a,b),即半开半闭区间。

2种范围的例子:

1):

2):

 

由于范围的设置不同,可能和预期结果有很大出入,所以使用的时候应该特别注意该问题!

 

C++中,可以使用标准库中的`std::sort`函数对容器中的元素进行排序。`std::sort`函数的用法如下: ```cpp #include <algorithm> std::sort(begin, end) ``` 其中,`begin`和`end`分别是排序范围的起始和结束迭代器,表示要排序的元素的范围。 下面是一个示例代码,展示如何使用`std::sort`函数对整型数组进行升序排序: ```cpp #include <iostream> #include <algorithm> #include <vector> int main() { std::vector<int> nums = {5, 2, 9, 1, 3}; // 对整型数组进行升序排序 std::sort(nums.begin(), nums.end()); // 输出排序后的结果 for (int num : nums) { std::cout << num << " "; } std::cout << std::endl; return 0; } ``` 上述代码中,我们使用`std::sort`函数对整型数组`nums`进行升序排序。通过传入`nums.begin()`和`nums.end()`作为参数,指定了要排序的范围。最后,我们使用循环输出排序后的结果。 如果需要对自定义的数据类型进行排序,可以通过重载比较运算符(`<`)来定义元素之间的比较规则,或者通过自定义比较函数来传递给`std::sort`函数。例如: ```cpp struct Person { std::string name; int age; }; bool compareAge(const Person& person1, const Person& person2) { return person1.age < person2.age; } int main() { std::vector<Person> people = {{"Alice", 25}, {"Bob", 30}, {"Charlie", 20}}; // 对自定义的数据类型进行排序,按照年龄升序排序 std::sort(people.begin(), people.end(), compareAge); // 输出排序后的结果 for (const Person& person : people) { std::cout << person.name << " (" << person.age << ") "; } std::cout << std::endl; return 0; } ``` 上述代码中,我们定义了一个自定义的数据类型`Person`,包含姓名和年龄两个成员变量。然后,我们定义了一个比较函数`compareAge`,用于按照年龄升序排序。在`std::sort`函数中,我们通过传入`compareAge`函数作为第三个参数,指定了元素之间的比较规则。最后,我们使用循环输出排序后的结果。 总结来说,`std::sort`函数是C++标准库中用于排序的函数,可以对容器中的元素进行升序排序。对于自定义的数据类型,可以通过重载比较运算符或者自定义比较函数来指定元素之间的比较规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值