|
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 7
|
||||||
Адрес элемента в векторе19.02.2018, 18:51. Показов 8156. Ответов 29
привет всем!
есть код
0x19abc28 0x19abc28 подскожите всегдали вывод во второй строке будет такой же как в первой7 число элементов в векторе больше либо равно три конечно же!
0
|
||||||
| 19.02.2018, 18:51 | |
|
Ответы с готовыми решениями:
29
|
|
1 / 1 / 0
Регистрация: 20.02.2018
Сообщений: 6
|
||||||||
| 21.02.2018, 01:53 | ||||||||
|
Croessmah, ну я же честно написал:
Реализовать std::vector в текущей модели памяти C++ без UB невозможно. Доказывать мне обратное бессмысленно, т.к. это не моё мнение. Да, я буду давить авторитетом.Хотя желание поспорить понятно. Многим неуютно, когда идиоматический код оказывается нагромождением UB. Поэтому модель памяти собираются пропатчить так, что можно будет реализовать вектор с этой гарантией "непрерывности". Кстати, забавно: Кликните здесь для просмотра всего текста
Про new сказано:
&v[0] + 2 ![]() Чтобы нельзя было сослаться на это место. Про new мне позволю себе подробно не разбирать. Отвечу так: когда в C вводили правило strict aliasing-а, возникла проблема: malloc принимает только размер и возвращает void*, какой же тип выделяет malloc, чтобы можно было кастануть этот void* и пользоваться памятью через типизированный указатель не нарушая strict aliasing-а? Решение было примерно таким: память под какой тип программист намеревался выделить, на кусок памяти такого типа malloc и возвращает указатель. malloc — это волшебная функция.new это тоже волшебное выражение. У него особая роль в C++ — оно может создавать объекты. Даже если new[] сделан через new(size), то выделяется массив. Почему? Магия. Если в стандарте кривоватые формулировки по поводу new (типа как под спойлером), их можно поправить. А вот для работы вектора без UB нужно вносить правки серьёзнее исправления формулировок. Добавлено через 40 минут Есть такая хрень, как предоставление массивом из байтов памяти под объект (http://eel.is/c++draft/basic.m... es_storage). Идея разрешить адресную арифметику для объектов, для которых один и тот же объект-массив provides storage. Но это надо фиксить пункт про оператор плюс для указателей. Плюс надо в определении new указать, что оно выделяет именно массив байт, который можно использовать чтобы provide storage. Пока что про массив там ничего не сказано, сказано про " allocate size bytes of storage".
0
|
||||||||
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 21.02.2018, 14:02 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 20.02.2018
Сообщений: 6
|
||
| 21.02.2018, 20:46 | ||
&v[n] == &v[0] + n for all 0 <= n < v.size().
0
|
||
|
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
|
|
| 21.02.2018, 21:19 | |
|
А мне интересно кто тут под ником Друг ньюфага, начинает развод бадяжить.
То в #4 пишем MrGluck, New man, просто мне друг сказал что тут какое-то не определенное поведение. я подумал это значит что не известно будет такое же значение или не будет. Т.е. я не я, моя твоя ничего не понимай. И смотрим #21 Где у ТС уже совсем другие познания и стиль изложения. (Даже Страуструпа кастрировать собрался).
0
|
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 22.02.2018, 02:02 | |||||
|
Добавлено через 3 минуты Добавлено через 12 минут Добавлено через 13 минут
1
|
|||||
|
1 / 1 / 0
Регистрация: 20.02.2018
Сообщений: 6
|
|
| 22.02.2018, 02:18 | |
|
Fulcrum_013, я думаю, C++ — не Ваш конёк.
Вам лучше пообсуждать уменьшение EXE-файлов с помощью замены DOS stub.
0
|
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||
| 22.02.2018, 02:28 | ||||||
|
Друг ньюфага,
Код оператора [] вектора
И доверять любым другим источникам (!неожиданно)не имею права по роду занятий.
0
|
||||||
|
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 7
|
|
| 23.02.2018, 15:15 [ТС] | |
|
всем спасибо
все свободны
0
|
|
|
1 / 1 / 0
Регистрация: 20.02.2018
Сообщений: 6
|
|||
| 23.02.2018, 15:45 | |||
|
Вот, если кому интересно, ссылка на сообщение от Richard Smith1
0
|
|||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||||||
| 23.02.2018, 16:29 | ||||||||||||
|
Друг ньюфага,
из кода вектора STL
Ну а то что возвернутый указатель может nullptr оказаться ну дак на то и динамический массив а не статический. Добавлено через 5 минут
0
|
||||||||||||
| 23.02.2018, 16:29 | |
|
Найти номер по порядку элемента в векторе векторов Вернуть индекс последнего с конца элемента E в векторе V Добавить методы поиска медианного элемента в матрице и векторе
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|