|
"C with Classes"
|
||||||
Чем заменить указатель05.07.2020, 10:39. Показов 5175. Ответов 48
Метки нет (Все метки)
Чем заменить можно указатель в данном примере. Что бы можно было использовать
p как объект без операции разыменования?
подозреваю, что использовать указатель в данном случае оптимальное и единственное решение, можно было бы использовать ссылку Container & если бы не было функции члена Reset
0
|
||||||
| 05.07.2020, 10:39 | |
|
Ответы с готовыми решениями:
48
Указатель или ссылка на указатель. В чем разница? Чем отличаются указатель на строку и константный указатель на строку? Указатель на указатель, в чем смысл? |
|
261 / 111 / 53
Регистрация: 22.01.2017
Сообщений: 448
|
|
| 05.07.2020, 19:51 | |
|
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 05.07.2020, 19:52 | |
|
n1b1ru,
Если речь о композиции типа Container относительно типа SomeClass, то вы уже её реализовали и сделали это правильно потому что время жизни поля типа Container зависит от времени жизни обьекта типа SomeClass. Что касается присвоения нового значения Container-у путём копирования или перемещения с использованием соответствующего оператора присваивания, то это лишь замена данных того же самого обьекта, время жизни которого все ещё зависит от времени жизни SomeClass.
1
|
|
|
"C with Classes"
|
|
| 05.07.2020, 19:52 [ТС] | |
|
0
|
|
|
261 / 111 / 53
Регистрация: 22.01.2017
Сообщений: 448
|
|
| 05.07.2020, 19:59 | |
|
_stanislav, чтобы указать на временный объект, данные которого можно "украсть".
0
|
|
|
"C with Classes"
|
|||||||
| 05.07.2020, 20:02 [ТС] | |||||||
0
|
|||||||
|
261 / 111 / 53
Регистрация: 22.01.2017
Сообщений: 448
|
||
| 05.07.2020, 20:07 | ||
|
Undisputed, это я понимаю.
Может не с того начал диалог. В любом случае спасибо
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||||||||||||||||||||
| 05.07.2020, 21:27 | |||||||||||||||||||||||||||||
|
в котором непонятно зачем удаляется элемент. может пример не очень удачный? вот нафига автор смотрит и удаляет элемент? один человек как то сокрушался, почему очередь не умеет снимать объект с вершины:
они по крайней мере логически обоснованны. в действительности: pop без front получается как бе не нужным. ты же приводишь фрагмент некоторого алгоритма, где может быть (а может и не быть) будет удален объект. раз алгоритм допускает оба варианта, значит ему не принципиально будит ли объект удален по итогу, или нет. отсюда два закономерных вопроса: 1. нафига он вообще удаляет элемент? 2. какая разница, получилось или нет, если это все равно не влияет на работу алгоритма? ну то есть, зачем проверять результат операции? вот например, лично тебе хоть раз понадобилась эта информация? можешь привезти хотя б один реалестичный пример, где нужно удалять по ключу, и при этом важно: был объект удален, или нет? я могу привезти множество примеров вида:
где было бы критично знать: был ли удален элемент или нет:
что ключ может существовать, а может и не существовать. и оба варианта одинако приемлимы. ну и нафига тогда нужен result ? более того, можно смело считать, что каждый раз ключа не существует. даже если это не так, это всё равно не окажет никакого влияния на алгоритм, которому априори пофигу: существует ли ключ в природе, или нет. первые хотят максимальный перфоманс, и до последнего считали, что вторые же хотят дизайн который который сможет дружить с многопоточностью. и даже если map не многопоточный, всегда можно будет запилить atomic_map, дизайн: auto it = m.find(key);не дружит с многопоточкой. в действительности, то, что it сейчас валидный, не значит, что ты сможешь безопасно заюзать его в erase в многопоточной среде.вариации на тему:
с возможностью предоставить отчет о результатах работы. в многопоточной среде такой дизайн - единственный нормальный способ работы. в то время, как сама концепция итераторов (и вообще любая указательно/ссылочная семантика) не дружит с многопоточностью. фокус в том, что парни из первой группы победили. std не поддерживает многопоточность. и никогда не будет поддерживать. в текущих реалиях итераторы очень востребованны. и совершенно не понятно, нафиг нужен такой erase.
0
|
|||||||||||||||||||||||||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 05.07.2020, 22:49 | ||
|
hoggy,
Я специально привёл пример где "сначала смотрит есть ли элемент, а потом удаляет" вместе с примером "не нужно сначала смотреть, можно попытаться удалить типа try_erase и узнать удалось ли это". То есть в одном случае erase ничего не возвращает, и мы не понимаем удалось ли удалить (а нам надо это знать)... Поэтому перед удалением приходится смотреть, а есть ли вообще такой элемент... а в другом erase возвращается значение и на основе того что вернула функция можно понять, что произошло внутри функции. Теперь о том, где это может быть нужно:
Сами товары в памяти например хранятся в map, где ключ это ID товара а значение - сам объект товара. Так вот, получив сигнал от сервера (вместе с ID удаленного товара) ты смотришь в map и если по ключу нашёлся среди подгруженных товаров тот товар который удалил другой клиент, то ты понимаешь что пора убирать товар из списка и показывать меседжбокс с сообщением что этот товар был удалён)...
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||
| 05.07.2020, 23:50 | ||||||||||
|
ты вэбом када нить занимался? знаешь как интернет-магазины устроенны? клиент поклал погремушку в корзинку. тот факт, что погремушки уже нет (потому что она была последняя, и её уже купили) вообще никого не парит. информация о том сколько шт есть в наличии - весьма условна. она обновляется, допустим, раз в 5 минут, а может быть раз в 1 час. и это вполне устраивает и клиентов, и магазин. клиент может ещё по 100 раз туда/сюда товары перекладывать. и пока он не нажмет кнопку: "подтвердить заказ", никто даже не заморачивается. интересное начинается только когда клиент нажимает на кнопку "подтвердить заказ". причем в зависимости от стратегии магазина, тебе могут запросто оформить например, видео-карточку, которой сейчас нет в наличии. потом с тобой свяжеццо менеджер и скажет: "бла бла бла, товара сейчас нет в наличии. не горит подождать пару дней?" вообще это хорошая попытка: проиллюстрировать сабж на примере работы с бд и клиентами. на таких примерах очень красноречиво видны два момента: 1. морда в принципе не владеет точной информацией о состоянии дел клиента. если сообщение не пришло, это ещё не значит, что товар не нужно убирать из списка. (может у тебя диссконнект, и сообщение просто затерялось по дороге?) 2. по этой причине у тебя всегда должна быть возможность запросить статус (состояние) по любым твоим операциям. морда не знает, и не может знать точное (актуальное) состояние клиента но всегда может запросить статус клиента перед тем, как начнет исполнять манипуляции над ним. пример говнокода: клиент отправляет запрос на создание новой позиции, и в ответ ожидает id открытой позиции. почему говнокод? потому что клиент не дождался ответа на свой запрос. внимание вопрос: так позиция была в итоге открыта, или нет? ответ: неизвестно. пример правильной работы: клиент сначала запрашивает id сессии. если не получил - даже не пытается больше ничего делать. если получил, тогда запрашивает создание новой позиции в контексте своей сессии. теперь, даже если что-то пошло через жопу, всегда можно повторно запросить : "моя сессия такая то, каков статус моей операции?" и второй момент. допустим, ты решил удалить из БД всех Ивановых. ты инициируешь запрос на удаление. "удалить всех Ивановых" в ответ приходит: "100500 Ивановых было успешно удалено". и вот здесь все люди деляццо на две категории. первые думают, что удалили всех Ивановых. аж целых 100500 теперь горит в аду. люди из второй категории понимают: фраза: "100500 Ивановых было успешно удалено" носит исключительно информационый характер. исключительно для того, что бы удовлетворить поверхностное любопытство клиентов. но с технической точки зрения она не имеет никакого значения. разговор программиста и менеджера:
там прямо сейчас опять уже может быть 10005000 пресловутых Ивановых. хотя бы потому, что другой клиент в параллель накачал новеньких. в многопоточной среде (когда в системе присутствует множество клиентов) отдельный клиент в принципе никак не может контролировать, и закладываться на какие то конкретные состояния БД. вот и получается, что дизайн:
алгоритмам count не нужен.
0
|
||||||||||
| 05.07.2020, 23:50 | |
|
сма DAEWOO DWD M1029A чем заменить транс, трансформатор в обрыве, чем заменить
Итератор и указатель в чем разница Чем можно заменить заменить toggle() ? Как заменить переменную i на указатель? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|