Re[8]: Популярность boost и STL
От: Centaur Россия  
Дата: 25.10.07 07:50
Оценка: :)
Здравствуйте, rg_software, Вы писали:

RO>>Я бы рассказал про итераторы, всё равно большинство людей их до конца, похоже, не осилило. Например, почему std::reverse(str.begin(), str.end()) — неверный ответ на вопрос «как развернуть строку». По этому поводу есть две поучительные
Автор: Odi$$ey
Дата: 14.03.03
картинки
Автор: Roman Odaisky
Дата: 26.03.07
.

_>Кстати, почему так строку не развернуть? В инете этот вариант часто предлагают.

Так строку не развернуть, но по причинам, не имеющим почти никакого отношения к C++.

Проблема будет при попытке развернуть строку, содержащую многобайтный символ (который при этом вывернется наизнанку и станет невалидным). Или строку Unicode, содержащую суррогатные пары (которые тоже вывернутся наизнанку) или nonspacing диакритику в decomposed форме (которая уйдёт на соседнюю букву).

std::basic_string<T>::[const_]reverse_iterator, естественно, никакого улучшения с точки зрения корректности не даст.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.