sort函数用于vector向量的排序
参考资料:
关于C++中vector和set使用sort方法进行排序
作者注:这篇文章写得相当全面,包括对vector和set中不同数据类型(包括结构体)的排序,还有一些还没看懂……特作此摘录,供当前及日后的学习
sort函数默认从小到大的排序。
一般类型的排序(int,double,char)
vector<int> vec;
for (int i = 0; i < 10;i++)
{
vec.push_back(rand());
}
sort(vec.begin(), vec.end());
for (vector<int>::iterator it = vec.begin(); it < vec.end(); it++)
{
cout << *it << " ";//注意这里使用*表示解引用
}
结果:
结构体类型的排序(struct)
结构体定义如下:(试验样本)
typedef struct ClassDis
{
double distance;
int class1;
int class2;
}ClassDis;
需要自己定义一个比较函数(因为sort默认从小到大排序,因此我们只需要定义什么情况属于“小于”就行了)
//自定义“小于”
bool comp(const ClassDis &a, const ClassDis &b)
{
return a.distance < b.distance;
}
vector<ClassDis> ddd;
//随机赋值
for (double a = 0; a < 10;a++)
{
ClassDis aaa{ (double)rand(), (int)a, (int)(a + 2) };
ddd.push_back(aaa);
}
//sort
sort(ddd.begin(), ddd.end(), comp);
//输出结果
for (vector<ClassDis>::iterator it = ddd.begin(); it < ddd.end(); it++)
{
cout << it->distance << "," << it->class1 << "," << it->class2 << endl;
}
结果:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用