Сообщение Re[6]: Зачем просят перевернуть строку на интервью? от 12.10.2018 17:16
Изменено 13.10.2018 8:31 Somescout
Re[6]: Зачем просят перевернуть строку на интервью?
Здравствуйте, Nuzhny, Вы писали:
Что-то смотрю я на этот код, и кажется мне что он будет работать только с null-terminated string. А на произвольной подстроке облажается.
Несогласные: на вход функция принимает итераторы, которые могут находиться в любом состоянии, у функции нет контракта чтобы левый итератор был строго в начале строки, а правый — в конце. Соответственно для null-terminated string, либо если BiDirectionalIterator инициализирован за концом обычной строки — всё отработает нормально. Но в произвольном случае будет ошибка. Если не прав — с интересом выслушаю вашу версию.
Что-то смотрю я на этот код, и кажется мне что он будет работать только с null-terminated string. А на произвольной подстроке облажается.
Несогласные: на вход функция принимает итераторы, которые могут находиться в любом состоянии, у функции нет контракта чтобы левый итератор был строго в начале строки, а правый — в конце. Соответственно для null-terminated string, либо если BiDirectionalIterator инициализирован за концом обычной строки — всё отработает нормально. Но в произвольном случае будет ошибка. Если не прав — с интересом выслушаю вашу версию.
Re[6]: Зачем просят перевернуть строку на интервью?
Здравствуйте, Nuzhny, Вы писали:
N>template<class BidirIt>
N>void reverse(BidirIt first, BidirIt last)
N>{
N> while ((first != last) && (first != --last)) {
N> std::iter_swap(first++, last);
N> }
N>}
N>
Что-то смотрю я на этот код, и кажется мне что он будет работать только с null-terminated string. А на произвольной подстроке облажается.
N>template<class BidirIt>
N>void reverse(BidirIt first, BidirIt last)
N>{
N> while ((first != last) && (first != --last)) {
N> std::iter_swap(first++, last);
N> }
N>}
N>
Что-то смотрю я на этот код, и кажется мне что он будет работать только с null-terminated string. А на произвольной подстроке облажается.