find find_if search

来源:互联网 发布:网络推广方式 编辑:程序博客网 时间:2024/05/17 12:02

  1)算法返回值都是迭代器  

  2)find() 在单迭代器序列中找出某个值第一次出现的位置

  3)find_if() 在单迭代器序列中找出符合某谓词的第一个元位置

  4)find_first_of() 在双迭代器中找出子序列第一次出现的位置

  5)adjacent_find() 在单迭代器中找出第一次相邻值相等的位置

  6)find_end() 在双迭代器中找出子序列最后一次出现的位置

  7)search() 在双迭代器序列中找出子序列第一次出现的位置

  8)search_n() 在单迭代器序列中找出一个值连续n次出现的位置


// find.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <vector>#include <algorithm>using namespace std;bool greater(int m){return (m>4);}int _tmain(int argc, _TCHAR* argv[]){vector<int> v;for(int i=0;i<4;i++)v.push_back(i*i);v.push_back(8);v.push_back(8);for(int i=0;i<v.size();i++)printf("%5d  \t",v[i]);printf("\n");//----------------------------------   //查找n值,n=1vector <int>::iterator p;p=find(v.begin(),v.end(),1);if(p!=v.end())printf("%d \n",p-v.begin() );elseprintf("not find\n");   //----------------------------------- //查找布尔运算规则下的值p=find_if(v.begin(),v.end(),greater);    if(p!=v.end())printf("if=%d \n",p-v.begin() );elseprintf("if not find\n");   //-----------------------------------//查找首次相邻元素相同的位置p=adjacent_find(v.begin(),v.end());if(p!=v.end())printf("adjacent=%d \n",p-v.begin() );elseprintf("adjacent not find\n");//-----------------------------------//查找首次n个相同元素的位置,2个8p=search_n(v.begin(),v.end(),2,8);if(p!=v.end())printf("search_n=%d \n",p-v.begin() );elseprintf("search_n not find\n");getchar();return 0;}


0 0
原创粉丝点击