首页 / 算法 / C++ STL标准库常用泛型算法
C++ STL标准库常用泛型算法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++ STL标准库常用泛型算法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1984字,纯文字阅读大概需要3分钟。
内容图文
![C++ STL标准库常用泛型算法](/upload/InfoBanner/zyjiaocheng/1091/c8b3d33c5a7845478ca088c1bf195429.jpg)
转自:https://www.cnblogs.com/wkfvawl/p/9475939.html,https://www.cnblogs.com/linuxAndMcu/p/10264339.html
1.二分查找
#include <algorithm> //查找某个元素是否出现,返回布尔类型,找到value返回1,否则返回0,并不会返回下标 binary_search(arr[],arr[]+size ,value)//在数组中 binary_search(a.begin(),a.end(),value)//在向量中 //查找第一个大于等于某个值的迭代器,返回对应容器类型的iterator lower_bound(arr[],arr[]+size , value)//在数组中 //查找第一个大于某值的迭代器,返回对应容器类型的iterator,找不到就指向end() upper_bound(arr[],arr[]+size ,value)//在数组中
lower_bound()在查找value时如果在数组中出现了,那么就会返回第一个出现位置的下标,如果没有出现则它的功能和upper_bound一样。
例子:
#include <iostream> #include<algorithm> usingnamespace std; int main(){ vector<int> a={4,10,11,30,69,70,96,100}; int b=binary_search(a.begin(),a.end(),4);//查找成功,返回1int c=binary_search(a.begin(),a.end(),69);//查找成功,返回1 //10在数组中,12不在数组中int d=lower_bound(a.begin(),a.end(),10)-a.begin();//1 >=int f=upper_bound(a.begin(),a.end(),10)-a.begin();//2 >int e=lower_bound(a.begin(),a.end(),12)-a.begin();//3 >=int g=upper_bound(a.begin(),a.end(),12)-a.begin();//3 > //当存在重复元素时 vector<int> a={10,20,30,30,20,10,10,20}; sort(a.begin(), a.end());//二分查找需要在有序数组上进行 //10 10 10 20 20 20 30 30int d=lower_bound(a.begin(),a.end(),10)-a.begin();//0 第一个>=int f=upper_bound(a.begin(),a.end(),10)-a.begin();//3int e=lower_bound(a.begin(),a.end(),12)-a.begin();//3int g=upper_bound(a.begin(),a.end(),12)-a.begin();//3return0; }
https://www.cnblogs.com/BlueBlueSea/p/13826493.html,我之前的这篇博客也记录了。
2.其他
//这些我用的不多
2.1排列组合
next_permutation(iv.begin(), iv.end());//下一个排列 prev_permutation(iv.begin(), iv.end());//上一个排列
2.2 数值算法
accumulate(vec.begin(), vec.end(), val);//求和,+val
2.3 关系算法
// max_element: 返回一个ForwardIterator,指出序列中最大的元素。 cout << "max_element: " << *max_element(iv1.begin(), iv1.end()) << endl; // min_element: 返回一个ForwardIterator,指出序列中最小的元素。 cout << "min_element: " << *min_element(iv1.begin(), iv1.end()) << endl;
等等,没有放进来,等用到的时候再学习。
原文:https://www.cnblogs.com/BlueBlueSea/p/14473681.html
内容总结
以上是互联网集市为您收集整理的C++ STL标准库常用泛型算法全部内容,希望文章能够帮你解决C++ STL标准库常用泛型算法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。