sort

撰写于 2019-11-17 修改于 2019-11-17 分类 ACM 标签 sort

1.结构体

1.只有结构体定义

1
2
3
4
5
struct node {
int a;
float b;
char job[20];
}

2.定义一个结构体变量

1
node  acm;

3.结构体之间的赋值

如果我有一个结构体node a,但是我想在定义一个结构体(node b)并且让这个新定义的结构体( b )里面的值都和之前的结构体 a相同 。

1
2
node b;
b=a;

4.结构体的引用

1
2
3
4
5
6
7
8
9
10
struct node {
int sorce;
char name[20] ;
}
node chengjidan;
int main(){
cin>>chengjidan.sorce>>chengjidan.name;
cout<<"name: "<<chengjidan.name<<endl;
cout<<"sorce: "<<chengjidan.sorce<<endl;
}

5.结构体的运算符重载

2.sort

简介:

sort 排序函数是在 C++ 中的一个库函数,它所在的头文件 为 algrithm.h,它其实就是对快速排序算法的封装,只需要 一行代码即可实现快速排序 它的时间复杂度为 O(n∗log(n)) 形式:sort(参数一, 参数二,参数三) 使用范围: 数组结构体 sting 队列 vector……

使用方法:

对数组 a 从小到大排序

a[5]
1
2
3
4
5
6
7
8



```\
对数据类型 Y 排序 sort(地址 1,地址 2,less<Y>());
//以Y为int为例 int a[5]={2,1,3,4,5}; sort(a,a+5,less<int>());
//less<int>()升序
//greater<int>()降序

自己定义sort排序

自定义排序

1
2
3
4

bool cmp(int a,int b){ return a<b; //从小到大排序
return a>b; //从大到小排序 }
sort(a,a+n,cmp)

结构体排序

1
2
3
4
5
bool cmp1(node a,node b){//自定义排序函数
if(a.grade!=b.grade) return a.grade>b,grade;
return a.id<b.id;//按照id排序 ,a<b表示升序 ,a>b降序 }
sort(a,a+n,cmp1);
}

3.栈和队列

栈和队列是一种特殊的线性表,其区别在于栈是先进后出像 一个瓶子,而队列是先进先出像排队

1
stack <int> s;//定义一个int型
1
s.push(2);// 把2从栈顶压
1
s. pop ();//弹出栈顶元素
1
s. empty ();//判断栈是否为 空
1
s. size ();// 栈的大小
1
2

s.top() ;//返回栈顶的元素,但不删除该元素
1
2
3
4
5
6
7

q.empty() //如果队列为空返回true,否则返回false
q.size() // 返回队列中元素的个数
q.pop() //删除队列首元素但不返回其值
q.front() // 返回队首元素的值,但不删除该元素
q.push() //在队尾压入新元素
q.back() // 返回队列尾元素的值,但不删除该元素
Site by hdy using Hexo & Random

acm

Hide