1、字符数组查找
#include <stdlib.h> #include <stdio.h> #include <math.h> #include <cstring> #include <algorithm> #include <iostream> using namespace std; int main() { string str; int n; char ch; cin>>str; getchar(); scanf("%c",&ch); cout<<str.find(ch)+1; return 0; }
2、整型数组元素查找
(1)最一般的查找方式,直接循环查找
(2)使用vector查找
#include <iostream> #include <vector> #include <cstdio> #include <algorithm> using namespace std; int main(){ int x,n; scanf("%d",&n); vector<int> v;//要查找的元素,类型要与vector<>类型一致 for(int i=0;i<n;i++) { scanf("%d",&x); v.push_back(x); } scanf("%d",&x); vector<int>::iterator iter=std::find(v.begin(),v.end(),x);//返回的是一个迭代器指针 if(iter==v.end()) cout<<-1; else //注意迭代器指针输出元素的方式和distance用法 cout<< distance(v.begin(), iter)+1 ; return 0; }
直接使用int类型的数组只能返回数组里有没有该元素,所以若查找具体位置需要用vector,如:
#include <iostream> #include <vector> #include <algorithm>//注意要包含该头文件 using namespace std; int main() { int nums[] = { 3, 1, 4, 1, 5, 9 }; int* result = find( nums , nums + 5,3 ); if( result == nums + 5 ) cout<< "Did not find any number matching " << endl; else cout<< "Found a matching number: " << *result << endl; return 0; }