博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STL之sort 排序
阅读量:5052 次
发布时间:2019-06-12

本文共 1639 字,大约阅读时间需要 5 分钟。

说明:

下面程序给出了如何对自定义结构的特殊排序,主要利用STL中的sort排序算法完成。

#include "stdafx.h"#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;struct tagStudent{ string strName; int nAge;};//自定义谓词函数进行比较//每个比较条件,均需使用“<”,否则程序异常bool lessLength(const tagStudent &a, const tagStudent& b){ if (a.nAge == b.nAge) { //姓名长度相等,则按照字典排序 if (a.strName.length() == b.strName.length()) { return a.strName < b.strName; } else { return a.strName.length() < b.strName.length(); } } else { return a.nAge < b.nAge; }}//使用function中的函数,进行比较,只能重载
vecStudentInfos; ss.clear(); ss.str(str); //提取字符串码流中的信息 while (ss >> strWord) { stTemp.strName = strWord; strWord.clear(); ss >> strWord; stTemp.nAge = atoi(strWord.c_str()); vecStudentInfos.push_back(stTemp); } cout << "sort before:" << endl; vector
::iterator it = vecStudentInfos.begin(); for (; it != vecStudentInfos.end(); ++it) { cout << "(" <
strName << "," << it->nAge <<")" << endl; } //方法一:重载< cout << "sort after by dictionary:" << endl; sort(vecStudentInfos.begin(), vecStudentInfos.end(), less
()); for (it = vecStudentInfos.begin(); it != vecStudentInfos.end(); ++it) { cout << "(" <
strName << "," << it->nAge <<")" << endl; } //方法二:谓词函数 cout << "sort after by string length:" << endl; sort(vecStudentInfos.begin(), vecStudentInfos.end(), lessLength); for (it = vecStudentInfos.begin(); it != vecStudentInfos.end(); ++it) { cout << "(" <
strName << "," << it->nAge <<")" << endl; } return 0;}

转载于:https://www.cnblogs.com/jinxiang1224/p/8468432.html

你可能感兴趣的文章
代码整洁
查看>>
蓝桥杯-分小组-java
查看>>
Java基础--面向对象编程1(类与对象)
查看>>
Android Toast
查看>>
iOS开发UI篇—Quartz2D使用(绘制基本图形)
查看>>
docker固定IP地址重启不变
查看>>
[Swift]LeetCode128. 最长连续序列 | Longest Consecutive Sequence
查看>>
[Swift通天遁地]一、超级工具-(9)在地图视图MKMapView中添加支持交互动作的标注图标...
查看>>
js版base64()
查看>>
poj3006---素数筛法
查看>>
c语言结构体排序示例
查看>>
openresty nginx systemtap netdata
查看>>
[Angular] Make a chatbot with DialogFlow
查看>>
sd卡无法启动及zc706更改主频后可以进入uboot无法启动kernel的坑
查看>>
代理模式
查看>>
MongoDB 集合(Collection)对应的物理文件
查看>>
HighCharts绘制图表
查看>>
AWD批量Get_flag
查看>>
8.引用函数
查看>>
Gmail企业级邮箱的outlook配置
查看>>