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;}
- find_first_of,adjacent_find,equal,mismatch,lexicographical_compare大杂烩
- STL_Algorithm2: equal, mismatch, lexicographical_compare
- STL比较范围(equal, lexicographical_compare, mismatch)
- STL_算法_区间的比较(equal、mismatch、 lexicographical_compare)
- adjacent_find,equal
- mismatch和lexicographical_compare
- find ,find_first_of , find_if , adjacent_find的使用
- boost函数:equal、mismatch
- lexicographical_compare
- lexicographical_compare
- mismatch,equal比较两序列
- adjacent_find
- adjacent_find
- adjacent_find
- adjacent_find
- adjacent_find
- adjacent_find
- 非变异算法之查询( find(), find_if(), find_first_of, adjacent_find(), find_end(), search(), search_n() )
- 排序 : 1 交换排序
- 重载运算符一
- Objective-C 内存管理
- ProcedureStore
- Exchange Server 2010 DAG邮箱数据库分布设计
- find_first_of,adjacent_find,equal,mismatch,lexicographical_compare大杂烩
- 字符编码详解及由来(UNICODE,UTF-8,GBK)[转帖]
- send,recv,sendto,recvfrom
- 脚本操作
- hdu1016 Prime Ring Problem
- 感慨:换位思考——测试台工作中也必须用到
- Asp.Net开发的WebService输出JSON格式
- vs的【warning C4996:'fopen': This function or variable may be unsafe】解决方案
- static三种用法