c++库函数大盘点

姓名: 张艺杨
赛道: 基础组
类型: 基础算法c++

【c++库函数大盘点】

关键词: 各种实用的库函数

本章节以函数需要使用的头文件分类

函数简介:

中文名:函数,外文名:function
c语言当中的库函数是为了提高编程效率

#include< algorithm>

1.count函数

用法:count(a.begin(),a.end(),key),是判断在a数组中是否存在key,是就返回1,否则返回0

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     vector<int>a={5,8,2,6,1,5,2,5,2};
     int key=5;
     if(count(a.begin(),a.end(),key)==1){
          cout<<"YES";
     }
     return 0;
}
//输出YES

2.find函数

用法:find(a.begin(),a.end(),key),与count的功能一样,只不过,find是找到那个元素就返回,而count是要遍历整个数组

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     vector<int>a={5,8,2,6,1,5,2,5,2};
     int key=5;
     if(find(a.begin(),a.end(),key)==1){
          cout<<"YES";
     }
     return 0;
}
//输出YES

3.reverse函数

用法:reverse(a.begin(),a.end()),从begin到end这段区间反转

示例:

#include<algorithm>
#include<iostream>
using namespace std;
int main(){
	string str={"hi! algorithm"};
	reverse(str.begin(),str.end());
	for(int i=0;i<str.size();i++)cout<<str[i];
    return 0;
}

//输出mhtirogla !ih

4.lower_bound函数

用法:lower_bound(begin,end,num)是在一个排好序的容器(vector/list/set)中进行二分查找,查找第一个>=num的数的地址,若使用lower_bound(begin,end,num)-数组名即可返回下标(下标从0开始)

示例:

#include<algorithm>
#include<iostream>
using namespace std;
int main(){
	int arr[]={2,1,4,7,4,8,3,6,4,8};
	cout<<lower_bound(arr,arr+8,3)-arr; 
    return 0;
}

//输出2

5. copy函数

用法copy(复制的begin,复制的end,粘贴的地方//从第几个元素)是把一个容器中的元素,复制到另一个数组的函数

示例:

#include<algorithm>
#include<iostream>
using namespace std;
int main(){
	int arr[]={2,1,4,7,4,8,3,6,4,8};
	int narr[10]={0}; 
	copy(arr,arr+10,narr);
	for(int i=0;i<10;i++)cout<<narr[i]<<" ";
    return 0;
}

6.shuffle函数

用法:shuffle(begin,end,mt19937{random_device{}()})是把一个容器中的元素,随机打乱的函数(要额外加#include< random>)

示例:

#include<algorithm>
#include<iostream>
#include<random>
using namespace std;
int main(){
	int arr[]={2,1,4,7,4,8,3,6,4,8};
	shuffle(arr,arr+10,mt19937{random_device{}()});
	for(int i=0;i<10;i++)cout<<arr[i]<<" ";
    return 0;
}//输出,没人知道

#include< cmath>

1.sin函数

用法:sin(α),求α的正弦值

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<fixed<<setprecision(3)<<sin(45);
     return 0;
}
//输出0.851即sin(45)

2.cos函数

用法:cos(α),求α的余弦值

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<fixed<<setprecision(3)<<cos(45);
     return 0;
}
//输出0.525即cos(45)

3.tan函数

用法:tan(α),求α的正切值

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<fixed<<setprecision(3)<<tan(45);
     return 0;
}
//输出1.620即tan(45)

4.asin函数

用法:asin(α),求α的反正弦值

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<fixed<<setprecision(3)<<asin(45);
     return 0;
}
//输出0.000即arcsin(45)

5.acos函数

用法:acos(α),求α的反余弦值

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<fixed<<setprecision(3)<<acos(-1);
     return 0;
}
//输出3.142即arccos(-1)

6.atan函数

用法:atan(α),求α的反正切值

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<fixed<<setprecision(3)<<atan(14);
     return 0;
}
//输出1.499即arctan(14)

7.log10对数函数

用法:log10(α),求α以10为底的对数

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<fixed<<setprecision(3)<<log(10);
     return 0;
}
//输出1即log(10)

8.log2对数函数

用法:log2(α),求α以2为底的对数

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<fixed<<setprecision(3)<<log2(1024);
     return 0;
}
//输出10即log2(1024)

9.abs绝对值函数

用法:abs(α),求α的绝对值

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<abs(-9);
     return 0;
}
//输出9即abs(-9)

10.sqrt平方根函数

用法:sqrt(α),求α的平方根

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<sqrt(9);
     return 0;
}
//输出3即sqrt(9)

11.pow乘方函数

用法:sqrt(a,b),求a的b次方

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<pow(2,3);
     return 0;
}
//输出8即2的3次方

12.ceil函数a

用法:ceil(a),求a向上取整

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<ceil(2.23);
     return 0;
}
//输出3即3向上取整

13.floor函数

用法:floor(a),求a向下取整

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<floor(2.23);
     return 0;
}
//输出2即2向下取整

14.max最大值函数

用法:max(a,b),求a,b的最大值

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<max(2,3);
     return 0;
}
//输出3即2,3的最大值

15.min最小值函数

用法:min(a,b),求a,b的最小值

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<min(2,3);
     return 0;
}
//输出2即2,3的最小值

16.round四舍五入函数

用法:round(a),求a的四舍五入值

示例:

#include<bits/stdc++.h>
using namespace std;
int main(){
     cout<<round(2.4)<<endl<<round(2.5);
     return 0;
}
//输出2
 //   3 

17.swap函数

用法:swap(a,b),交换a,b

示例:

#include<iostream>
#include<cmath>
using namespace std;
int main(){
	int a=1,b=2;
	swap(a,b);
	cout<<a<<" "<<b;
     return 0;
}

//输出2 1

#include< cstring >

1.memset初始化函数

用法:memset(数组,x,长度),将数组赋值成x

2.strlen取字符串长度函数

用法:strlen(字符串)返回字符串长度

3.sizeof取数组长度函数

用法:sizeof(数组)返回数组长度

4.to_string

用法:to_string(数字)把数字转为字符串

5.stoi()(刚好与to_string功能相反)

用法:stoi(字符串)把字符串转为数字

其他cstring函数(部分)

include< climits>

1.值域函数

提到#include大家最先想到的想必是各个类型的最大最小值:

示例:

#include<climits>
#include<iostream>
using namespace std;
int main(){
	cout<<LLONG_MAX<<" "<<LLONG_MIN;
    return 0;
}

//输出9223372036854775807 -9223372036854775808

include< queue> and #include< stack >

此处就不一一讲解了

队列

 插入数据:【队列名】.push(数据);
	删除数据:【队列名】.pop();
	显示队首元素:【队列名】.front();
	显示队尾元素:【队列名】.back();
	队列长度:【队列名】.size();
	队列是否为空:【队列名】.empty()

进栈:【栈名】.push(数据);
注意:操作栈时若有多个元素,则可以使用花括号扩住,也可以使用结构体

出栈:【栈名】.pop();//里面没参数!!  !没有返回值(只是删除东西)
注意:空栈不可弹出

若需要返回值的出栈则用:【栈名】.top()//这里面没有参数,返回当前栈的栈顶

栈的栈元素的个数:【栈名】.size()//没有参数,返回当前栈元素的个数

判断当前栈是否为空:【栈名】.empty()//无参数,空返回true,非空返回flase

除此之外c++常用库函数还有许多,请大家自行发现

THE END

点个赞吧

u=2798397904,446633095&fm=253&fmt=auto&app=138&f=GIF

4 个赞

感觉不像你自己写的 @linan04007

准确点,是不是应该称之为

是的,谢谢提醒

纠正:

include< climits>

1.值域函数应该为—>头文件定义宏

2.#include应该为—>#include

2 个赞

《本来想举报翻老帖,但是发现是老师的我》

1 个赞

是不是老师在评比啊,毕竟明天结果就 出了

1 个赞

也对,应该是,希望我能拿奖

1 个赞