C++标准库find简单用法
来源:互联网 发布:房地产大数据 走势 编辑:程序博客网 时间:2024/05/22 10:31
#include <iostream>#include <vector>#include <algorithm>//注意要包含该头文件using namespace std;//例一,在数组中查找int main(){int nums[] = { 3, 1, 4, 1, 5, 9 };int num_to_find = 5;int start = 0;int end = 6;int* result = find( nums + start, nums + end, num_to_find ); if( result == nums + end ) {cout<< "Did not find any number matching " << num_to_find << endl;} else { cout<< "Found a matching number: " << *result << endl;}return 0;}/*例二,在容器中查找:int main(){ vector<int> v;int num_to_find=25;//要查找的元素,类型要与vector<>类型一致 for(int i=0;i<10;i++) v.push_back(i*i); vector<int>::iterator iter=std::find(v.begin(),v.end(),num_to_find);//返回的是一个迭代器指针 if(iter==v.end()) cout<<"ERROR!"<<endl; else //注意迭代器指针输出元素的方式和distance用法 cout<<"the index of value "<<(*iter)<<" is " << std::distance(v.begin(), iter)<<std::endl; return 0;}*/#include <algorithm>#include <iostream>using namespace std;void main(){ const int ARRAY_SIZE = 8 ; int IntArray[ARRAY_SIZE] = { 1, 2, 3, 4, 4, 5, 6, 7 } ; int *location ; // stores the position of the first // matching element. int i ; int value = 4 ; // print content of IntArray cout << "IntArray { " ; for(i = 0; i < ARRAY_SIZE; i++) cout << IntArray[i] << ", " ; cout << " }" << endl ; // Find the first element in the range [first, last + 1) // that matches value. location = find(IntArray, IntArray + ARRAY_SIZE, value) ; //print the matching element if any was found if (location != IntArray + ARRAY_SIZE) // matching element found cout << "First element that matches " << value << " is at location " << location - IntArray << endl; else // no matching element was // found cout << "The sequence does not contain any elements" << " with value " << value << endl ; }