я нихуя не понял. Почему способ инкрементирования итераторов не имеет значения. Для переменных имеет, а для итераторов не имеет... Три раза пересмотрел, почитал в интернете форумы - все равно не могу понять как думает компьютер в данном случае
полазал, поискал... С чего ты взял, что инкрементирование итераторов не имеет значения? Имеет, и именно это и разбирается в видео. Именно на примере реализации постфиксного и префиксного инкремента у итератора. И, заранее хочу отметить, что для "простых смертных" переменных, использование пре/постфиксного инкремента имеет значение, ибо суть там та же: при префиксном - просто прибавляется единица и затем возвращается, а при постфиксном - создаётся доп. объект (некий клон) для возврата изначального значения (не суть важно с какой целью, для вывода на консоль или для присваивания этого значения какой-либо переменной), затем изменяется состояние текущей переменной, и потом уже возвращается значение созданного в начале "клона"
Если вас мучает вопрос есть ли в современной версии компилятора реальная разница между префиксным и постфиксным инкрементом, то да, есть но мизер Total time: 0.87753 vs Total time: 0.87779 это для релиз конфигурации когда компилятор сам оптимизирует этот момент как указал автор в видео. Ну и также с высокой долей вероятности у вас это спросят на собесе.
В данном примере на 2:00 приоритет не должен играть роли никакой, т.к. у побитового сдвига приоритет ещё ниже чем у обоих инкрементов. Играет роль возвращаемое значение. При постфиксном инкременте создается временная переменная копия оригинальной до инкремента, которая идет на ретерн, а оригинальная переменная инкрементируется. В префиксном же происходит инкремент оригинальной переменной и её возврат.
дай угадаю, дело в времени работы, так как у постфиксного инкримента ест временный переменный, а префиксного его нет, но только в дебуге заметно это скорость а обычной работе не заметно так как комплиятор сам меняет его. а сейчас посмотрю видео, надеюсь был прав )
Когда нужно возвращать неизменённое значение. Если целью инкремента является только изменение данных, а не мгновенное их использование, то префиксный инкремент всегда лучше.
Расскажите, пожалуйста,как человеку,который изучил С++ по всем Вашим урокам,заработать на программировании первые деньги. Куда идти,что ещё нужно доучить?Заранее спасибо за ответ)
По видео все понятно, но может ли кто-нибудь объяснить, что в выражении ++(*(_Mybase *)this); означает часть *)this ?? Мы поидее разименовываем адрес в памяти this, но такое чувство что звездочка должна стоять за скобкой, а не перед ней. Или у такого маневра есть свое назначение? что оно разименовывает?
*Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)*
ой аж засмущали ^^ Спасибо за уроки :) Всё крайне понятно объясняешь, хоть и приходится ставить скорость на 1.25 и порой на 1.5)
Да я сам всегда ускоряю, это нормально =)
я нихуя не понял. Почему способ инкрементирования итераторов не имеет значения. Для переменных имеет, а для итераторов не имеет... Три раза пересмотрел, почитал в интернете форумы - все равно не могу понять как думает компьютер в данном случае
до сих пор мучает вопрос? А то могу попробовать ответить)
да, мучает
полазал, поискал... С чего ты взял, что инкрементирование итераторов не имеет значения? Имеет, и именно это и разбирается в видео. Именно на примере реализации постфиксного и префиксного инкремента у итератора. И, заранее хочу отметить, что для "простых смертных" переменных, использование пре/постфиксного инкремента имеет значение, ибо суть там та же: при префиксном - просто прибавляется единица и затем возвращается, а при постфиксном - создаётся доп. объект (некий клон) для возврата изначального значения (не суть важно с какой целью, для вывода на консоль или для присваивания этого значения какой-либо переменной), затем изменяется состояние текущей переменной, и потом уже возвращается значение созданного в начале "клона"
Настолько вроде мелкая вещь , но если разобрать её, то действительно дает некоторое понимание, что ты пишешь и как улучшить код , спасибо__))
#итераторы #STL #SimpleCode #урокипрограммирования
Спасибо, у Вас лучший канал на ютюбе!!! по крайней мере в русскоязычном сегменте. Спасибо еще раз.
Пожалуйста!
Благодарю!
Спасибо за шикарно изложенный матерьял!
Если вас мучает вопрос есть ли в современной версии компилятора реальная разница между префиксным и постфиксным инкрементом, то да, есть но мизер Total time: 0.87753 vs Total time: 0.87779 это для релиз конфигурации когда компилятор сам оптимизирует этот момент как указал автор в видео. Ну и также с высокой долей вероятности у вас это спросят на собесе.
Спасибо за видео.
Спасибо за урок.
Ты лучший. Огромное спасибо.
Спасибо за урок!
А на второй раз не чуть не хуже. ) Спасибо Сергей!
спасибо большое за отличный ролик!!
Топ уроки, спасибо большое
В данном примере на 2:00 приоритет не должен играть роли никакой, т.к. у побитового сдвига приоритет ещё ниже чем у обоих инкрементов. Играет роль возвращаемое значение. При постфиксном инкременте создается временная переменная копия оригинальной до инкремента, которая идет на ретерн, а оригинальная переменная инкрементируется. В префиксном же происходит инкремент оригинальной переменной и её возврат.
Спасибо за объяснение!
Здравствуйте, а когда будут уроки по c#?
Спасибо
Спасибо за качественный контент
лучший
Dėkui
Да... Зайти в реализацию итератора не догадался... Спасибо!
нажми f12 между ++
@@1___________________1-p4g Гений мысли,отец русской демократии
@@паносниглайдер 😂😂😂
дай угадаю, дело в времени работы, так как у постфиксного инкримента ест временный переменный, а префиксного его нет, но только в дебуге заметно это скорость а обычной работе не заметно так как комплиятор сам меняет его.
а сейчас посмотрю видео, надеюсь был прав )
Это применимо к работе с, допустим, целочисленными переменными? Там существует такая накладка?
почему какоето действие : ++(*this) (на 7:01 минуте)
я думаю что он визивает префиксную функцию что находица сверху
В таком случае лучше всегда использовать префиксный инкремент?
Тогда зачем нужна постфиксный..?
Когда нужно возвращать неизменённое значение. Если целью инкремента является только изменение данных, а не мгновенное их использование, то префиксный инкремент всегда лучше.
какое отношение постфиксный и префиксный инкременты имеют к STL? Как будто это лучше в плейлист к C++ закинуть
Расскажите, пожалуйста,как человеку,который изучил С++ по всем Вашим урокам,заработать на программировании первые деньги. Куда идти,что ещё нужно доучить?Заранее спасибо за ответ)
Ну что? Что нибудь получилось?
А теперь что нибудь получилось? Может поделишься опытом?
@@Валерий-щ8з изучай фраемворкии 🎉
@@ДанилАхметшин-и4ц QT теперь только через VPN тянуть(
а есть ли разница когда работаешь с циклом for не с листом, а чем нибудь другим? можно ли всегда использовать префиксный?
можно
По видео все понятно, но может ли кто-нибудь объяснить, что в выражении ++(*(_Mybase *)this); означает часть *)this ?? Мы поидее разименовываем адрес в памяти this, но такое чувство что звездочка должна стоять за скобкой, а не перед ней. Или у такого маневра есть свое назначение? что оно разименовывает?
Кстати в 2019 Visual Studio уже написано по-другому:
_List_iterator& operator++() {
_Mybase::operator++();
return *this;
}
+
Разрешите спросить - а по C# на вашем канале уроки были?
Ещё нет но будут, тут всё о дальнейших планах ua-cam.com/video/EQdq3XxoJQQ/v-deo.html
#SimpleCode Большое спасибо. Пока поштудирую Основы ООП!
спасибо
спасибо
спасибо