4.5. Обращение строк
4.5. Обращение строк
Проблема
Требуется обратить (реверсировать) строку.
Решение
Чтобы обратить строку «на месте», не используя временной строки, используйте шаблон функции reverse из заголовочного файла <algorithm>:
std::reverse(s.begin(), s.end());
Обсуждение
reverse работает очень просто: она изменяет диапазон, переданный ей, так, что его порядок меняется на обратный оригинальному. Время, необходимое для этого, линейно зависит от длины диапазона.
В случае, если требуется скопировать строку в другую строку, но в обратном порядке символов, используйте реверсивные итераторы, как здесь:
std::string s = "Los Angeles";
std::string rs;
rs.assign(s.rbegin(), s.rend());
rbegin и rend возвращают реверсивные итераторы. Реверсивные итераторы ведут себя так, как будто они просматривают последовательность в обратном порядке. rbegin возвращает итератор, который указывает на последний элемент, a rend возвращает итератор, указывающий на позицию перед первым элементом. Это в точности обратно тому, что делают begin и end.
Но должны ли вы обращать строку? С помощью rbegin и rend для обратной строки можно использовать все методы или алгоритмы, работающие с диапазонами итераторов. А если требуется выполнить поиск в строке, то можно использовать rfind, которая делает то же, что и find, но начинает с конца строки и движется к ее началу. Для больших строк или большого количества строк обращение может оказаться очень дорогостоящим, так что при возможности избегайте его.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Приложение 1. Обращение разработчиков Tor к пользователям
Приложение 1. Обращение разработчиков Tor к пользователям На сайте Torproject.org имеется следующее обращение разработчиков системы Tor к пользователям: Хотите чтобы Tor заработал по настоящему? ... тогда пожалуйста поймите, что не достаточно просто установить его и начать
Обращение к элементам страницы
Обращение к элементам страницы Объект document имеет несколько полезных методов, которые можно использовать в скриптах. Но главное его значение - предоставление доступа к отдельным элементам Web-страницы.Как же можно добраться до отдельного элемента страницы?Прежде всего,
4.1.2 Обращение к индексам
4.1.2 Обращение к индексам Ядро идентифицирует индексы по имени файловой системы и номеру индекса и выделяет индексы в памяти по запросам соответствующих алгоритмов. Алгоритм iget назначает индексу место для копии в памяти (Рисунок 4.3); он почти идентичен алгоритму getblk для
Обращение к Linuxconf с помощью Web-броузера
Обращение к Linuxconf с помощью Web-броузера Чтобы воспользоваться Web-интерфейсом, предоставляемым Linuxconf, вам надо задать в поле, предназначенном для ввода URL, значение http://имя_узла:98. Вместо имени узла можно указать его IP-адрес. В ответ вы получите описание Linuxconf. На этой же
Праздничное обращение к читателям (на правах предисловия)
Праздничное обращение к читателям (на правах предисловия) Перед вами книга об Интернете. О том, что это такое, где его найти и как использовать для своих и чужих нужд (если потребуется). Если вы не имеете ни малейшего понятия о том, что такое Интернет, то прочитайте этот
12.6. Обращение к объектам, отображенным в память
12.6. Обращение к объектам, отображенным в память Когда в память отображается обычный файл, размер полученной области (второй аргумент вызова mmap), как правило, совпадает с размером файла. Например, в листинге 12.3 размер файла устанавливается равным размеру структуры shared
Обращение к окнам из программного кода
Обращение к окнам из программного кода Прямо из программного кода проще всего обращаться к тому окну, в котором открыт редактируемый документ во время запуска процедуры. Для указания окна используется объект ActiveWindow.Для определения окна прямо в программном коде вам
8.1.20. Обращение массива
8.1.20. Обращение массива Чтобы переставить элементы массива в обратном порядке, воспользуйтесь методами reverse или reverse!:inputs = ["red", "green", "blue"]outputs = inputs.reverse # ["green","blue","red"]priorities = %w(eat sleep code)priorities.reverse! #
Обращение ссылок по ID /IDREF
Обращение ссылок по ID/IDREF Функция id позволяет отыскать в документе элементы по заданным значениями ID-атрибутов. Это особенно полезно при работе с IDREF-атрибутами, которые ссылаются на ID-атрибуты: можно с легкостью выбрать элементы, на которые ссылается текущий элемент.
Гаолян кы сын бо! Обращение к трудящимся
Гаолян кы сын бо! Обращение к трудящимся Авторы: Хозяин Лясао Хаобынь, Джерри Карпов-цзыБратья и сестры! Товарищи! Наступает светлый день для всей нашей необъятной родины. Сегодня, 4 апреля 2048 года, мы празднуем сорокалетие того дня, когда Китай наконец-то по праву вернул