C++学习之库函数<algorithgm>(2)
来源:互联网 发布:手机淘宝开店不成功 编辑:程序博客网 时间:2024/06/07 13:03
<algorithm>算法库
find
返回第一个值等价于给定值的元素函数:find(first,last,val)
解释:first:指向序列的初始地址。
last:指向序列的末地址,但不包括last指向的元素。
val:需要查找的值。
返回:指向在范围[first,last)中与val等值的第一个元素的地址。如果不存在,则返回last。
实例1:
#include<iostream>#include<algorithm>using namespace std;int main(){int a[]={2,2,6,3,1};cout<<find(a,a+5,6)-a+1<<endl;return 0;}/*运行结果:3*/
实例2:
#include<iostream>#include<algorithm>using namespace std;int main(){int a[]={2,2,6,3,1};cout<<find(a,a+5,5)-a+1<<endl;//查找5,不存在返回出界return 0;}/*运行结果:6*/
find_if
查找范围 A 中与范围 B 等价的子范围最后出现的位置函数:find_if(first,last,pred)
解释:first:指向序列的初始地址。
last:指向序列的末地址,但不包括last指向的元素。
pred:一元谓词函数,以范围的一个元素为参数,然后返回一个可转换成bool类型的值。
返回:指向在范围[first,last)中使谓词函数反悔true的第一个元素的地址。如果不存在,则返回last。
实例1:
#include<iostream>#include<algorithm>using namespace std;int pred(int a){return a>5;}int main(){int a[]={2,2,6,3,1};cout<<*find_if(a,a+5,pred)<<endl;return 0;}/*运行结果:6*/
实例2:
#include<iostream>#include<algorithm>using namespace std;int pred(int a){return a<2;}int main(){int a[]={2,2,6,3,1};cout<<find_if(a,a+5,pred)-a+1<<endl;//返回小于2的第一个元素的位置return 0;}/*运行结果:5*/
search
在范围 A 中查找第一个与范围 B 等价的子范围的位置函数:search(first1,last1,first2,Binary)
解释:first1:指向序列1的初始地址。
last1:指向序列1的末地址,但不包括last指向的元素。
first2:指向序列2的初始地址。
last2:指向序列2的末地址,但不包括last指向的元素。
Binary:二元谓词函数,以范围的两个元素为参数,然后返回一个可转换成bool类型的值。
返回:返回指向序列[first2,last2)在序列[first1,last1)第一次出现位置处的第一个元素的地址。
实例1:
#include<iostream>#include<algorithm>using namespace std;int pred(int a,int b){return a==b;}int main(){int a[]={2,2,6,3,1};int b[]={6,3,1};cout<<search(a,a+5,b,b+3,pred)-a+1<<endl;return 0;}/*运行结果:3*/
实例2:
#include<iostream>#include<algorithm>using namespace std;int pred(int a,int b){return a<b;}int main(){int a[]={2,2,6,3,1};int b[]={6,3};cout<<search(a,a+5,b,b+3,pred)-a+1<<endl;return 0;}/*运行结果:6*/
copy
将一个范围中的元素拷贝到新的位置处函数:copy(first1,last1,first2)
解释:first1:指向序列1的初始地址。
last1:指向序列1的末地址,但不包括last指向的元素。
first2:指向序列2的初始地址。
实例1:
#include<iostream>#include<algorithm>using namespace std;int main(){int a[]={2,2,6,3,1};int b[10];copy(a,a+5,b);for(int i=0;i<5;i++)cout<<b[i]<<' ';return 0;}/*运行结果:2 2 6 3 1*/
阅读全文
0 0
- C++学习之库函数<algorithgm>(2)
- C++学习之库函数<algorithgm>(1)
- c 学习笔记之 c IO标准库函数
- c语言库函数学习2(math库)
- C语言库函数学习
- c语言库函数学习(string)
- c语言库函数学习(Date_time)
- c语言库函数学习(IO)
- C语言库函数学习: atoi
- c库函数之分割字符串
- linux_011之库函数string.c
- linux_011之库函数wait.c
- linux_011之库函数write.c
- 文件编程之C库函数
- C语言库函数2
- C语言编程常见问题解答之标准库函数(2)
- 杂记之C语言之库函数assert
- c语言库函数学习3(memory)
- org.apache.spark.shuffle.FetchFailedException:Failed to connect to异常
- 由前序遍历和中序遍历重构二叉树
- 图像处理19:简单阈值
- AOP用AspectJ开发
- JAVA编程思想学习记录(一)
- C++学习之库函数<algorithgm>(2)
- MySQL查询权限
- 异常
- Java学习第十天
- CNN中参数计算公式
- 整理对Spark SQL的理解
- RHCE——管理Linux网络
- unlink的使用
- B. Fox And Two Dots