STL算法------查找3

来源:互联网 发布:福建省茶叶出口数据 编辑:程序博客网 时间:2024/05/23 19:16

1.search()

2.find_end()


注意:

          这两个算法是一对

          第二个算法应该叫search_end(),但被命名为find_end()


#include <iostream>#include <algorithm>#include <vector>#include <list>using namespace std;bool CheckEven( int elem, bool even ){if(even)return elem%2==0;elsereturn elem%2==1;}int main( int argc, char** argv ){vector<int> vec;list<int> lst;for( int i=0; i<9; ++i ){vec.insert(vec.end(), i );}for( int i=0; i<9; ++i ){vec.insert(vec.end(), i );}for( int i=3; i<7; ++i ){lst.insert(lst.end(), i );}for(vector<int>::const_iterator citr=vec.begin(); citr!=vec.end(); ++citr){cout<<*citr<<' ';}cout<<endl;for(list<int>::const_iterator citr=lst.begin(); citr!=lst.end(); ++citr){cout<<*citr<<' ';}cout<<endl;//searchvector<int>::iterator pos;pos = search( vec.begin(), vec.end(), lst.begin(), lst.end() );while( pos != vec.end() ){cout<<"find "<<distance(vec.begin(), pos)+1<<endl;++pos;pos = search( pos, vec.end(), lst.begin(), lst.end() );}//find_endcout<<"use find_end"<<endl;pos = find_end(vec.begin(), vec.end(), lst.begin(), lst.end() );if( pos != vec.end() ){cout<<"find "<<distance(vec.begin(), pos)+1<<endl;}else{cout<<"not find"<<endl;}//search_ifbool bEven[3] = {false, true, false};pos = search(vec.begin(), vec.end(), bEven, bEven+3, CheckEven );if( pos != vec.end() ){cout<<"find  "<<distance(vec.begin(), pos)+1<<endl;}else{cout<<"not find"<<endl;}return 0;}


0 0
原创粉丝点击