Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Реверс строки через итераторы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ error C2664 http://www.cyberforum.ru/cpp-beginners/thread351924.html
Помогите пожалуйста исправить ошибку : ошибка: Ошибка 1 error C2664: void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...): невозможно преобразовать параметр 1 из "const char " в...
C++ Помогите пожалуйста по Одномерному массиву длинных целых чисел!!! Здравствуйте!!! Помогите пожалуйста решение задачи!!! Одномерный массив длинных целых чисел Задание №1 Составить программу определения среднего значения для увеличивающегося количества чисел... http://www.cyberforum.ru/cpp-beginners/thread351922.html
C++ Работа с zip
Хотелось бы сделать мини обработчик zip архивов для своих нужд, который бы редактировал все zip архивы что найдёт в папке. Ну из возможностей нужна возможность редактирования txt файлов внутри zip...
Дано действительное число a. Для функции f(x) вычислить f(a) C++
Дано действительное число a. Для функции f(x) вычислить f(a). Решите пожалуйста. Заранее благодарен.
C++ Вывод на печать http://www.cyberforum.ru/cpp-beginners/thread351911.html
Спроектируйте и отладьте программу, осуществляющую ввод массива деталей с указанием шифра детали, ее цены и количества данного шифра деталей, а также осуществляющую формирование и вывод платежной...
C++ Аналог Mylable: Госпада если нужно перейти вверх по программе используют Mylable,а если в низ? подробнее

Показать сообщение отдельно
skvor
640KB мне хватило на всё.
118 / 49 / 2
Регистрация: 07.06.2009
Сообщений: 442

Реверс строки через итераторы - C++

15.09.2011, 20:22. Просмотров 1495. Ответов 8
Метки (Все метки)

C++
1
2
3
  std::string s="123456";
  s.replace(s.begin(),s.end(),s.rbegin(),s.rend());
  std::cout<<s<<std::endl;
Почему-то работает правильно и не падает. Если предположить наиболее быструю реализацию метода replace(а, b, m, n) с четырьмя итераторами, то мне кажется д.б.
1. Определение увеличения или уменьшения размера строки
2.a увеличение размера строки и перемещение хвоста [b,end[,
ИЛИ
2.b перемещение хвоста [b,end[ и уменьшение строки
3. копирование [m,n[ в оставшийся диапазон [a,a+m-n[.
Но если бы это было так, то пример возвращал бы исходную строку 123456.

В книжке не нашел, как вообще это должно быть реализовано. Из опыта получается, что реализация безопасна, но с лишним копированием во внутреннюю память. А это противоречит той же книжке, в плане того, что STL проектировалась как набор эффективных алгоритмов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru