find_first_of,adjacent_find,equal,mismatch,lexicographical_compare大杂烩

来源:互联网 发布:flash软件最新版本 编辑:程序博客网 时间:2024/06/05 17:58

各种算法,近日得闲,敲了一下:看算法名称,也大概能猜出这个算法是做什么的,因此,看一下例子就算了,不解释了;

#include<iostream>#include<string>#include<vector>#include<algorithm>#include<functional>using namespace std;int main(){int a[]={1,2,3,4,5,6,7,8,9,10};vector<int>v(a,a+10);vector<int>vv(a+3,a+8);vector<int>::iterator it=find_first_of(v.begin(),v.end(),vv.begin(),vv.end());//cout<<distance(v.begin(),it)<<endl;//cout<<*it<<endl;while(it!=v.end()){cout<<"found"<<distance(v.begin(),it)<<endl;++it;it=find_first_of(it,v.end(),vv.begin(),vv.end());}system("pause");return 0;}
#include<iostream>#include<string>#include<vector>#include<algorithm>#include<functional>bool chenger(int a,int b){return a*2==b;}using namespace std;int main(){int a[]={1,2,3,4,5,6,7,8,9,10};vector<int>v(a,a+10);vector<int>vv(a+3,a+8);for(vector<int>::iterator ite=vv.begin();ite!=vv.end();++ite){cout<<*ite<<" ";}cout<<endl;vector<int>::iterator it=find_first_of(v.begin(),v.end(),vv.begin(),vv.end(),chenger);cout<<*it<<endl;system("pause");return 0;}
#include<iostream>#include<string>#include<vector>#include<algorithm>#include<functional>using namespace std;int main(){int a[]={1,2,3,4,5,6,7,8,9,10};vector<int>v(a,a+10);vector<int>vv(a+3,a+8);vector<int>::iterator first;vector<int>::reverse_iterator last;first=find_first_of(v.begin(),v.end(),vv.begin(),vv.end());last=find_first_of(v.rbegin(),v.rend(),vv.begin(),vv.end());cout<<"the first location: "<<distance(v.begin(),first)<<endl;cout<<"the last locatioin: "<<distance(v.begin(),last.base())<<endl;system("pause");return 0;}
#include<iostream>#include<string>#include<vector>#include<algorithm>#include<functional>using namespace std;int main(){int a[]={1,2,3,4,5,6,6,8,9,10};vector<int>v(a,a+10);vector<int>vv(a+3,a+8);vector<int>::iterator it;it=adjacent_find(v.begin(),v.end());//寻找两个连续且相等的元素,在这一点上,有一点像search_n(v.begin(),v.end(),2,X);if(it!=v.end()){cout<<"found the two number equals"<<endl;cout<<*it<<endl;}else{cout<<"none"<<endl;}system("pause");return 0;}
#include<iostream>#include<string>#include<vector>#include<algorithm>#include<functional>bool liangbei(int a,int b){return 2*a==b;}using namespace std;int main(){int a[]={1,2,3,4,5,6,6,8,9,10};vector<int>v(a,a+10);vector<int>vv(a+3,a+8);vector<int>::iterator it;it=adjacent_find(v.begin(),v.end(),liangbei);if(it!=v.end()){cout<<"找到了第一个符合条件的两个连续的元素,其中后一个是前一个元素的两倍"<<endl;cout<<*it<<" "<<*(it+1)<<endl;}else{cout<<"没有找到"<<endl;}system("pause");return 0;}
#include<iostream>#include<string>#include<vector>#include<algorithm>#include<functional>using namespace std;int main(){int a[]={1,2,3,4,5,6,7,8,9,10};int b[]={2,3,4,5,6,7,8,9,10,11};vector<int>v(a,a+10);vector<int>vv(b,b+10);vector<int>vvv(a,a+10);if(equal(v.begin(),v.end(),vv.begin())){cout<<"v=vv"<<endl;}else{cout<<"v!=vv"<<endl;}if(equal(v.begin(),v.end(),vvv.begin())){cout<<"v=vvv"<<endl;}else{cout<<"v!=vvv"<<endl;}system("pause");return 0;}
#include<iostream>#include<string>#include<vector>#include<algorithm>#include<functional>using namespace std;bool jianyi(int a,int b){return a==b-1;}int main(){int a[]={1,2,3,4,5,6,7,8,9,10};int b[]={2,3,4,5,6,7,8,9,10,11};vector<int>v(a,a+10);vector<int>vv(b,b+10);vector<int>vvv(a,a+10);if(equal(v.begin(),v.end(),vv.begin(),jianyi)){cout<<"vv中的每个元素减去一 与V的元素相等"<<endl;}else{cout<<"还是不相等"<<endl;}system("pause");return 0;}
#include<iostream>#include<string>#include<vector>#include<algorithm>#include<functional>using namespace std;bool jianyi(int a,int b){return a==b-1;}int main(){int a[]={1,2,3,4,5,6,7,8,9,10};int b[]={1,2,3,5,6,7,8,9,10,11};vector<int>v(a,a+10);vector<int>vv(b,b+10);pair<vector<int>::iterator,vector<int>::iterator>pa=mismatch(v.begin(),v.end(),vv.begin());if(pa.first!=v.end()&&pa.second!=vv.end()){cout<<"第一个在v中不匹配的是"<<*(pa.first)<<endl;cout<<"第一个在vv中不匹配的是"<<*(pa.second)<<endl;}system("pause");return 0;}
#include<iostream>#include<string>#include<vector>#include<algorithm>#include<functional>using namespace std;int main(){ int a[]={1,2,3,4,5,6,7,8,9,10}; int b[]={1,2,3,4,5,6,7,8,9,10}; vector<int>v(a,a+10); vector<int>vv(b,b+10); if(lexicographical_compare(v.begin(),v.end(),vv.begin(),vv.end())){  cout<<"符合字典次序"<<endl; }else{  cout<<"不合符字典次序"<<endl; } cout<<endl; system("pause"); return 0;}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机充电那坏了怎么办 孩子在学校被老师冤枉怎么办 初中学校不好我该怎么办 天气太热屁股淹了怎么办 骑车骑的屁股疼怎么办 爬山时屁股摔紫青了怎么办 宝宝不肯脱裤子拉粑粑怎么办 国家对无地农民怎么办 生完孩子骨架变大怎么办 17岁长高很慢怎么办? 出月子腿着凉了怎么办 脚着凉了脚疼怎么办 腿着凉了特别疼怎么办 孩子骨龄大2两年怎么办 和人吃饭很尴尬怎么办 头不自觉向右偏怎么办 靠墙站立腰疼怎么办 小腿酸痛乏力肌肉萎缩怎么办 搬重物后手臂疼怎么办 和尚鹦鹉吃了盐怎么办 刚买鹦鹉不上手怎么办 word的文件时间改了怎么办 图强gps编码丢失怎么办 武统台湾后岛民怎么办 没有你我怎么办是什么歌 ios 12软件闪退怎么办 来大姨妈想吐怎么办 3岁宝宝体重轻怎么办 硕士延期毕业考上博士怎么办 中国人移民欧洲饮食不习惯怎么办 出车祸了报警警察不管怎么办 高中的孩子不好好上学怎么办 和老公消费观念不合拍怎么办 去医院没带现金怎么办 微信读书下架了怎么办 24岁血压有点高怎么办 吃鸡鼠标弹出来怎么办 电脑分辨率调错了怎么办 猎豹sc9打不开门怎么办 苹果手机卡顿反应慢怎么办 金立手机卡顿反应慢怎么办