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

String для коротких строк - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача Timus http://www.cyberforum.ru/cpp-beginners/thread932807.html
Почему не проходит тест? Может кто знает? http://acm.timus.ru/problem.aspx?space=1&num=1001 #include <vector> int main() { std::vector<int> v;
C++ Универсальный класс для строк Здорова господа! Есть задачка "Подумайте как можно спроектировать идеальный класс для универсальной работы с текстами. Назовите его Text. Какими он будет обладать возможностями? Какую нагрузку на... http://www.cyberforum.ru/cpp-beginners/thread932803.html
C++ перевод строки CHAR
Добрый день уважаемые форумчане) Пишу в IARе под AVR столкнулся с проблеммой вычесть из строки лишние символы. к примеру приведу такой код void SHOW_TEXT(char *text, int color, int colors, int...
Не разбиваются шаблоны класса на файлы C++
Всем привет. Изучаю С++, всегда разбивал свои программы на файлы и радовался, но тут начал изучать шаблоны классов, и ничего не выходит, страшные ошибки выдает. Вот написал маленькую пробную...
C++ Ошибка при попытке подключить внешнюю библиотеку http://www.cyberforum.ru/cpp-beginners/thread932754.html
Делал всё по инструкции, только пути другие. Пишет: Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ __imp__createDevice в функции _main Ошибка 2 error LNK1120: неразрешенных...
C++ Алгоритмы сжатия Доброго всем времени суток. Интересует такой вопрос. Можете посоветовать какую-нибудь подробную литературу по алгоритмам сжатия данных на с++ ? Меня интересуют именно варианты алгоритмов сжатия,... подробнее

Показать сообщение отдельно
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
03.08.2013, 12:23  [ТС]
Убежденный, Ну смотри, а если мы просто для обычного класса, с не определенной длинной строки, определим ему строку не больше допустим 8 символов, будем просто явно проверять size() чтобы было 8 и менье, то что можно сказать что это будет класс string для коротких строк? (он наверно не будет если будет 8 символов и мы запишет 3 символа, то если будет перевыделение памяти под 3 символа, то это значит что оптимизации не будет.)

И что понимать под не выделение памяти? От допустим у нас есть тип short_string и тип string в short_string всегда выделена память под 8 символов, если мы делаем так short_string short("hel"); то просто память под 8 символов выделяется потом мы просто operator= вызываем short="privet", то память не выделяется, а просто происходит перезаписывание в выделеную ячейку для 8 символов. Правильно понимать нужно это считается оптимизация? Ну если подумать, то время будет уменьшатся за счет того что память только раз выделяется.

А теперь давай string разберем, там по идее должно каждый раз перевыделятся память, просто если у нас будет строка на 1к символов и мы туда запишем строку на 2 символа, зачем же перерасход памяти? Конечно наверняка будет заново выделена память под два символа. Этот тип по времени должен работать дольше за счет перевыделения памяти.

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