В C++ я знаю, что вы можете иметь несколько итераторов. Например, если у вас есть функция, которая хотела, чтобы увидеть первое совпадение строки в двух итераторах, почему бы код выглядеть примерно так:Ищет строку в двух итераторах в C++
Iterator found_it(Iterator one, Iterator two){
while(one != two && (*one) != "Bob"){
one++;
}
return one;
}
* Вопрос сказал один и два не обязательно означают, начать() и конец() - это то, что действительно дал мне ум **** и растерянность: S *
во-первых, то, что происходит, если Bob
был в итератора two
? Потому что вы возвращаете только итератор one
? Это то, что меня действительно смущает в данный момент.
Благодаря
Где вы взяли этот код, как вы думаете, он намерен делать, и почему вы доверяете? – Beta
В вашем примере итератор 'two' является итератором для элемента AFTER последнего элемента, который вы хотите найти. Поэтому даже не нужно ничего указывать. Это часто, например, 'std :: vector.end()'. – Rames
Если «Боб» находится в итераторе два, то он выходит за пределы диапазона, который вы хотите найти, чтобы его не найти. Второй итератор - это * одно прошлое * диапазон поиска. Таким образом, вы ищете от «одного» до, но не включая «два». – Galik