std::vector
türünde string
türünde bir dize bulmak için aşağıdaki kodu kullanıyorum. Ama belirli elemanın pozisyonunu nasıl iade edebilirim?vector <string> :: yineleyici - bir öğenin konumunun nasıl bulunacağı
Kodu:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
vector<string> vec;
vector<string>::iterator it;
vec.push_back("H");
vec.push_back("i");
vec.push_back("g");
vec.push_back("h");
vec.push_back("l");
vec.push_back("a");
vec.push_back("n");
vec.push_back("d");
vec.push_back("e");
vec.push_back("r");
it=find(vec.begin(),vec.end(),"r");
//it++;
if(it!=vec.end()){
cout<<"FOUND AT : "<<*it<<endl;
}
else{
cout<<"NOT FOUND"<<endl;
}
return 0;
}
Çıktı:
FOUND AT : r
Beklenen Çıktı:
FOUND AT : 9
Teşekkürler! benim merakımdan ne çıktıysa, eğer benim vektörüm '1000 elementi' içeriyorsa ve 'find'i kullanmak daha hızlı mı olacak yoksa 'array'e bir çeşit pointer' kullanmalı mıyım? – user2754070
@ user2754070 ölçmek zorunda kalacaksınız, ancak optimize edilmiş bir yapıda "bul" dan daha hızlı olacağından şüpheliyim. – juanchopanza