for (auto it_e = e_it-1; b_it != e_it; b_it++, it_e--) {
if(*b_it != *it_e)
return false;
}
return true;
}
int main()
{
std::string str = "hello olleh";
if(palindrom(str.begin(),str.end()))
std::cout<<"palindrom";
else
std::cout<<"not palindrom";
return 0;
} почему в у функции не нужно указывать тип данных?
У тебя тут при четной длине прога упадет
Не упадет. Он проходит контейнер от начала до конца и от конца до начала
Условие выхода из цикла - равенство итераторов, относительная дистанция между итераторами изменяется на два, значит они могут перескочить друг друга
Условие выхода из цикла - левый итератор дошел до оригинального конца
b_it++, it_e-- где тут 2?
Первый +1, второй -1, идут навстречу друг другу
Правый итератор (и его совпадение с левым) не фигурирует
там есть e_it и it_e
Обсуждают сегодня