栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C++ STL】sort用法大合集

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C++ STL】sort用法大合集

最近这几天,康康一直在刷一些题目,来保证手感,恰好做到了排序一类的题目,发现sort挺好用的,直接秒杀一些什么冒泡桶排序快排等等,顺便就整理一下吧。


首先呢,讲一下sort最最最基本的格式——

            sort位于#include的头文件中(注意STL都没有.h)        sort格式——sort(a+m,a+n)      //我来解释一下,a是一个数组的前缀,例如a[5],这里的a就是传入首地址往后推移m个单位,一直到第n个单位

               ps:如果m不写,那么就是默认从下标0开始

可能友友们还是不理解,那就准备看下面的小例题。

#include
#include
using namespace std;
int main()
{
	int a[5]={1,5,6,7,9};
	sort(a,a+5);
	for(int i=0;i<5;i++)
	cout<

输出结果:

可以发现,这个sort默认就是从小到大的排序方式,可能就会有小伙伴说,假如我想从大到小的顺序排列,怎么去作呢。

这里康康,给大家两点思路,

    可以先直接用这种sort格式,然后逆序输出,完事。可以使用进阶版sort

sort进阶款

        同样,先看格式————sort(a+m,a+n,greater())           //greater就是更大的意思,T就是数据的类型,比如我如果是整数,那么T就填int,如果是字符,那就填char

       看例题,这就是上面那个例题中的sort稍微变形一下来的

#include
#include
using namespace std;
int main()
{
	int a[5]={1,5,6,7,9};
	sort(a,a+5,greater());
	for(int i=0;i<5;i++)
	cout<

 这是结果,是吧,简洁明了。

看到这里,可能有些小伙伴绝得还是不够尽兴,康康懂你们,继续往下看


sort究极版

老规矩,献上格式————sort(a+m,a+n,RULE())     //RULE就是你自己定义的规则

RULE的规则定义也有格式具体看下

struct RULE
{
	bool operator()(const T &a1,const T &a2) const     //T和上面的一样,如果是整数就改为int
	{
		return _________;    //填你需要的排序方式
	}
};

如果你还是不理解的,话就看下面的例题吧!

#include
#include
using namespace std;
struct RULE
{
	bool operator()(const int &a1,const int &a2) const 
	{
		return a1%10

来见证奇迹的时刻到了

 是不是很为震撼,以前一直用循环和if来判断排序,还学着各种花式排序,帅炸了不是。

希望康康今天分享的东西能对你有帮助,但也希望各位多多支持我。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/717079.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号