本博文主要讲了find 、find_if、find_first_of、find_end、adjacent_find、search、search_n 这些stl中的查询算法
实例1 #include <iostream> #include <algorithm> #include <functional> using namespace std; bool myless(int n) { return n < 4; } int main() { //////////find 数组 int a[] = {0,1,1,2,3,4,5,6,7,8,9,5,6,7,11}; int len = sizeof(a)/sizeof(a[0]); int* p = find(a,a+11,3); cout<<"首次出现3的位置是:"<<p - a<<endl; ////////find_if 数组 需要有一个一元函数 int* p1 = find_if(a,a+11,bind2nd(less<int>(),4));//////也可以自定义函数 cout<<"首次小于4的位置:"<<p1 - a<<endl; int* p2 = find_if(a,a+15,myless);//////也可以自定义函数 cout<<"首次小于4的位置:"<<p2 - a<<endl; /////////find_first_of 数组 int b[] = {5,6,7}; int* p3 = find_first_of(a,a+15,b,b+3); cout<<"首次在a数组中发现b数组中的元素的位置为:"<<p3 - a<<endl; ///////adjacent_find 数组 int * p4 = adjacent_find(a,a+15); cout<<"首次在a数组中发现有相邻的两个元素相等的位置为:"<<p4 - a<<endl; ////////find_end 数组 int* p5 = find_end(a,a+15,b,b+3); cout<<"最后一次在a数组中匹配b数组的位置为:"<<p5 - a<<endl; ///////首次在a数组中匹配b数组search 数组 int* p6 = search(a,a+15,b,b+3); cout<<"首次在a数组中匹配b数组的位置为:"<<p6 -a<<endl; ////////search_n 数组 int* p7 = search_n(a,a+15,2,1); cout<<"首次出现2个1的位置为:"<<p7 - a<<endl; system("pause"); return 0; }