|
161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
|
|
Немного про std::string08.07.2016, 00:16. Показов 4380. Ответов 34
Метки нет (Все метки)
Привет, читал про
std::string на разных сайтах.1. Там говорят, С++ 11 гарантирует, что std::string будет stored contiguously in memory. В этом я не сомневаюсь, но каким еще образом можно в памяти хранить std::string?2. Говорят, что std::string на самом деле имеет null-terminator на конце. Это так? Вроде да, я в этом немного убедился в своей студии. Сделал четыре std::string'a, через цикл от 0 до size()+1 вывел все представления их символов в виде int, и да, последний символ был '\0' (в int виде просто 0).Но все равно, некоторые говорят, что если мы имеем std::string str("hello"); и пытаемся получить доступ к желанному null-terminator'у, у нас может быть UB. Т.е. писать такое: std::cout << (int)str[str.size()] << std::endl; не стоит. Правда может быть UB?3. Что под капотом у std::string на самом деле? Можете объяснить простым языком, если не трудно?
0
|
|
| 08.07.2016, 00:16 | |
|
Ответы с готовыми решениями:
34
std::string, std::fstream, ошибка кучи Файловый поток и std::string |
|
|
|||
| 26.07.2016, 23:31 | |||
|
Добавлено через 2 минуты
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 26.07.2016, 23:55 | |||||||
|
стандарт явно требует располагать буковки в непрерывном блоке памяти.
1
|
|||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 26.07.2016, 23:58 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 26.07.2016, 23:59 | ||
|
по стандарту там должны быть буковки. поэтому лист не подойдет внезависимости от аллокатора.
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||
| 27.07.2016, 00:04 | ||||
|
"как вообще" - оффтопик, который не представляет интереса в рамках данной темы. вот здесь:
1 Requires: pos <= size(). то бишь правомерно обращаться к элементу за последней буковкой. то бишь к нулю?
0
|
||||
| 27.07.2016, 00:04 | |
|
Avazart, у многих и вся жизнь лишена смысла, так что обсуждать смысл - занятие неблагодарное. Я вот так широко понял (и продолжаю понимать) вопрос ТС, оппоненты тычут в нос стандартом и говорят "нельзя"...
0
|
|
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
||
| 27.07.2016, 00:09 | ||
|
2
|
||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 27.07.2016, 00:12 | |
|
0
|
|
|
|
|||||||
| 27.07.2016, 00:14 | |||||||
|
или нет перефразирую что все будет нормально до передачи в ф-цию вычисляющую длину по \0. Ибо сам std::string как я понимаю опирается не на \0 а на внутреннюю переменную m_size. Ибо такие вещи как
0
|
|||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 27.07.2016, 00:16 | |
|
0
|
|
|
|
||||||
| 27.07.2016, 00:42 | ||||||
|
Кстати спонтанно возник такой код:
По идее за это должен отвечать std::char_traits<>
0
|
||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 27.07.2016, 01:32 | |||||||
0
|
|||||||
| 27.07.2016, 01:32 | |
|
Перевод строк std::string, std::wstring в Unicode (String)
Перевод из Unicodestring B std::string
Std::string в UnicodeString RAD XE4 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|