C++vector反復器検索要素は下付きに戻ります


#include 
#include 
#include 
#include 
#include //     
#include 
#include 
#include 
#include 
using namespace std;

//    ,       
int findElement(vector<char> v, char key){
	int len = v.size();
	for(int i=0; i<len; i++){
		if(v.at(i) == key){
			return i;
		}
	}
	return -1;
}
//vector::iterator findElement2(vector v, char key){
//	return find(v.begin(), v.end(), key);
//}
int findElement2(vector<char> v, char key){
	vector<char>::iterator it;	//                   
	it = find(v.begin(), v.end(), key);
	if(it != v.end()){
		//distance                  。                    ,         ;            ,       。
		return distance(v.begin(),it); 
	}
	return -1;
}


int main(){
	
	vector<char> v;
	v.push_back('a');
	v.push_back('b');
	v.push_back('c');
	v.push_back('a');
	v.push_back('a');
	
	cout<<findElement(v,'c')<<endl; 
	
	cout<<findElement2(v,'c')<<endl; 
	
	
	
	return 0;
}