欢迎光临散文网 会员登陆 & 注册

C++笔记

2023-07-25 22:06 作者:CynicismWangYouX  | 我要投稿


abs()绝对值


比如说我们按照每个数的个位进行从大到小排序,我们就可以根据自己的需求来写一个函数作为排序的准则传入到sort()中。

```c

#include<iostream>

#include<algorithm>

using namespace std;

bool cmp(int x,int y){

return x % 10 > y % 10;

}

int main(){

int num[10] = {65,59,96,13,21,80,72,33,44,99};

sort(num,num+10,cmp);

for(int i=0;i<10;i++){

cout<<num[i]<<" ";

}//输出结果:59 99 96 65 44 13 33 72 21 80


return 0;


```c                       stable-sor

STL

标准模板库

#include<stack>

stack<int> stk;

创建栈,int类型,叫stk;

stk.push(1)

把一入栈

stk.top()

获取栈顶元素

stk.pop()

出栈

stk.empty()

判断栈是否为空

stk.size()

获取栈中元素的个数

 ```

```c

void clear(){

top=0;

return;

}

  ```

清空栈


x%n的范围0~(n-1)数组的最大值是9*10^7


  1递推算法

递推算法:是指从已知的初始条件出发,依据某种递推关系,逐次推出所要

求的各中间结果及最后结果。


  2.可用递推算法求解的题目一般有以下二个特点:


  1、问题可以划分成多个状态;


  2、除初始状态外,其他各个状态都可以用固定的递推关系式来表示。


  3.递推问题的求解步骤


      1建立递推关系式


      2确定边界条件


      3递推求解


      4斐波那契数列


  斐波那契数列,又称黄金分割数列、因子学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、213、....在数学上,斐波那契数列以递推的方法定义:


  F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2)( n>=3)


  队列:


 是一个线性表

只允许在表的前端(front)删除,在后端(rear)插入。

只允许在队首(front)删除,在队尾(rear)插入。

队列的长度=队尾指针 - 队首指针

  

  

  

STL库队列操作方法

头文件:

```c

#include<queue>

queue<int> q;

q.empty();--判断是否为空

q.size();--队列长度

q.push();--插入元素

q.back();--求队尾

q.front();--求队首

q.pop();--删除队首元素

```



车厢调度

 ```c

#include<bits/stdc++.h>

using namespace std;

int a[1001];

stack<int> stk;

int main(){

int n;

cin>>n;

for(int i=0;i<n;i++){

cin>>a[i];

}

int t=1;

for(int i=0;i<n;i++){

while(a[i]>=t){

stk.push(t);

t++;

}

if(stk.top()==a[i]){

stk.pop();

}

else{

cout<<"NO";

return 0;

}

}

cout<<"YES";

return 0;

}


```


递归回溯算法框架(深搜)

```c

int Search(int k)

{

for(int i=1;i<=“算符种数”;i++)

{

if(”满足条件“)

{

//保存结果

if(“到达结果“)//输出解

else Search+1;

//恢复:保存结果 b[i]=0

}


  }

}

```                           

```c

int Search(int k)

{

if(到目的地)输出解;

else

for(int i=1;i<=算符种数;i++)

{

if(满足条件)

{

保存结果;

Searc(k+1);

//恢复:回溯 

}

```

STL库队列操作方法

头文件:

```c

#include<queue>

queue<int> q;

q.empty();--判断是否为空

q.size();--队列长度

q.push();--插入元素

q.back();--求队尾

q.front();--求队首

q.pop();--删除队首元素

```


C++笔记的评论 (共 条)

分享到微博请遵守国家法律