#C++初学记录(sort函数)
2020-02-07 21:19
78 查看
sort函数
前言:当进行贪心算法的学习时,需要用到sort函数,因为初学c++汇编语言,sort的具体用法没有深入学习,所以这里进行sort学习记录并只有基础用法并借用贪心算法题目的代码。
百度百科:用于C++中,对给定区间所有元素进行排序。头文件是#include algorithm。
编译代码
#include<iostream> #include<algorithm> using namespace std; #define MAXN 100 struct node{ int start; int end; }record[MAXN]; //结构体排序 bool cmp(const node& a,const node& b) { return a.end < b.end; } int main() { int n, count, lastend, i; while(true){ //读入n cin>>n; //判定结束条件 if(n == 0) break; //读入原始数据 for(i=0; i<n; i++) cin >> record[i].start >> record[i].end; //排序:按结束时间 sort(record, record + n, cmp); //贪心法处理:后一个起始时间必须大于或等于前一个终止时间 count = 0; lastend = -1; for(i=0; i<n; i++){ if(record[i].start >= lastend) { count++; lastend = record[i].end; } } cout<<count<<endl; } return 0; }
函数理解
sort函数是c++中非常实用的函数,我们不再需要使用冒泡排序等排序方法对数据进行排序,使用sort函数即可对所选定的数据进行你需要的排序方法,排序规则可以自己编写。sort函数需要键入三个参数,第一个和第二个参数是需要排序的数据起始和结束端,第三个参数是需要自己自行定义的排序规则,即告诉函数它应该怎么进行排序,若第三个参数不进行编写,则默认由小到大进行排序。
bool cmp(const node& a,const node& b) { return a.end < b.end; } sort(record, record + n, cmp);
参数cmp就由自己定义成对a结构体的end组数组进行由小到大的排序。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- #C++初学记录(set进阶#acm cf 190802 B. Subsegments)
- #C++初学记录(算法测试2019/5/5)(深度搜索)
- #C++初学记录(ACM8-6-cf-f题)
- #C++初学记录(算法考试1)
- #C++初学记录(算法4)
- #C++初学记录(算法效率与度量)
- #C++初学记录(算法3)
- #C++初学记录(STL容器以及迭代器)
- #C++初学记录(算法2)
- #C++初学记录(树和二叉树)
- #C++初学记录(ACM试题2)
- #C++初学记录(ACM试题1)
- #C++初学记录(typedef和define)
- #C++初学记录(深度搜索#递归)
- 初学c++的一些小记录(Mac下)
- #C++初学记录(判断子串#数学结合)
- #C++初学记录(N皇后#回溯递归)
- #C++初学记录(A==B?##高精度)
- #C++初学记录#日常学习函数
- 初学c++ 错误记录:error LNK2001: unresolved external symbol