Ich habe eine Zuweisung, an der ich arbeite, die die Funktion Outline zur Verfügung gestellt hat. Ich soll die Position des Fundstücks zurückgeben, wenn sie gefunden wird, oder -1, falls nicht. Hier ist, dass Gliederungscode:Verwenden des Suchalgorithmus
int linearSearch(const vector<int>& inputVec, int x) {
und ich habe in der Funktion füllen den find
Algorithmus. Mein Verständnis ist, dass find
einen Iterator zurückgibt. Ich bin mir einfach nicht sicher, wie ich das nehmen und eine ganze Zahl zurückgeben soll, die die Position oder eine -1 ist. Gerade jetzt versuche ich das auf der Innenseite.
auto it = find(inputVec.begin(), inputVec.end(), x);
und ich bin mir nicht sicher, wohin ich von dort gehen soll.
Ich bezweifle, sind Sie auf diese Weise angenommen. Eine direkte lineare Suche wäre wahrscheinlich sehr viel schneller. So oder so, wenn Sie es unbedingt mit 'std :: find' wollen, ist dies ein Duplikat von [diese Frage] (http://stackoverflow.com/questions/2152986/what-is-the-most-effective-way) -Herunter-den-Index-eines-Iterator-eines-Stdvektors. – Paul
Sie können den Bereich zwischen dem 'it' und' inputVec.begin() 'überprüfen. – Fureeish