开饭前先友情提示,C++中的string、char *等字符串的输入千万不要用scanf("%s或%c");(会丢数据哒!!!)一定要用 cin 来输入。(不然就坐等WA吧~~~)
一.sort函数排序
当然,我们先要定义一个结构体哈
struct test{
int a;
int b;
int c;
};
第一部分:cmp函数,负责确定结构体排序的对象和方式 //cmp为布尔型函数,只返回真假值
bool cmp(test a,test b){ //判断2个具体的结构体元素
return a.b>b.b; //比较a.b是否大于b.b
}
第二部分:sort排序
比较与普通数组来说,结构体数组排序的sort语法要多一项
普通:
sort(a,a+n); //a:数组名,a+n:数组长度
结构体数组:
sort(a,a+n,cmp);
注意:结构体数组排序,是把每个结构体单位一起排序,而非单个元素(讲多了看起来费神,直接上图片吧)
排序前:
排序后:
(~我想应该时够直接了吧~)
二.自定义冒泡排序
for(int i=n;i>0;i++){
for(int j=1;j<=i;j++){
if(表达式){
swap(a[i],a[i-1]);
}
}
}
重要的事情说三遍:
C++中的string、char *等字符串的输入千万不要用scanf("%s或%c");(会丢数据哒!!!)一定要用 cin 来输入。(不然就坐等WA吧~~~)
C++中的string、char *等字符串的输入千万不要用scanf("%s或%c");(会丢数据哒!!!)一定要用 cin 来输入。(不然就坐等WA吧~~~)
C++中的string、char *等字符串的输入千万不要用scanf("%s或%c");(会丢数据哒!!!)一定要用 cin 来输入。(不然就坐等WA吧~~~)