Пишу на C++ больше 10 лет, но, наткнувшись на ваши лекции, понимаю, что все это время только лишь "трогал его лапкой". Спасибо!
@bonjovi86103 ай бұрын
Да ладно!
@Becaury Жыл бұрын
Огромная благодарность за лекцию и за ту энергию с которой вы преподаете!
@goodween7913 Жыл бұрын
Очень рад, что нашёл ваши лекции. Огромное спасибо за такой ценный материал!
@chapaj3000 Жыл бұрын
Очень понятно и продуманно подано! Благодарю за лекцию!
@yakryt72283 жыл бұрын
Наконец-то! Заждались Ваших лекций, спасибо.
@Lornaria Жыл бұрын
Огромное спасибо за такую отличную лекцию в открытом доступе! Получилось захватывающе: интриги, расследования, разве что без скандалов :)
@AndersonSilva-dg4mg3 жыл бұрын
Вау, новый урок, премного благодарен Вам Константин за эту лекцию.
@СеменЦимбалюк-ф4л3 жыл бұрын
Спасибо за ваши лекции. Это лучшее по С++ что есть в ютубе. По крайне мере в русскоязычном сегменте. И как же легко смотрится вводная лекция после лекции по корутинам.
@makaedg2 жыл бұрын
А вне русского сегмента можете что-нибудь посоветовать?
@СеменЦимбалюк-ф4л2 жыл бұрын
@@makaedg в лекциях Константина всегда есть ссылки на доп литературу, и на видео с лекциями на конференциях.
@makaedg2 жыл бұрын
@@СеменЦимбалюк-ф4л Мой вопрос скорее про цельный курс (в идеале видеокурс) по advanced C++. За материалы в конце лекций, естественно, большой респект!)
@makaedg2 жыл бұрын
@@СеменЦимбалюк-ф4л Добавлю, что лекции Константина потрясающие, и было бы круто найти что-то соответствующего уровня на английском.
@СеменЦимбалюк-ф4л2 жыл бұрын
@@makaedg не могу с этим помочь.
@stanislavstanislavius76185 ай бұрын
11:23 как же приятно сейчас видеть реализацию по кэшу и понимать, что пару недель назад сделал приблизительно также))
@JasonTrool Жыл бұрын
10:17 - самая гениальная шутка про C, которую я когда-либо слышал!
@tilir Жыл бұрын
Авторство не моё, это что-то с просторов интернета.
@Коромыслаитолкунчики2 жыл бұрын
После лекции по матроидам стало ясно, что именно этот курс по C++ следует послушать.
@sergeyprikhodko44429 ай бұрын
Константин Игоревич, спасибо большое за лекцию! Часть видео, которая начинается с 50:18, называется "LRU на C", хотя речь идет о LRU на C++.
@Николай-ы6к5ь3 жыл бұрын
Новый учебный год начался!
@vuniverserb11423 жыл бұрын
Смотрю лекцию ради неизвестных терминов и хороших практик))
@bonjovi86103 ай бұрын
Нормально. Кто не знает язык Си выучите его за недельку.)
@SlavaVy011 ай бұрын
вот это я удачно зашел.
@babichfx3 жыл бұрын
Поехали!
@pavelrid3 жыл бұрын
Запах C++ устойчивый, странный но вроде приятный
@viacheslavbarkov65383 жыл бұрын
Неплохое введение. P.S. Номер телефона нужно было потереть на видео...
@andrewwest93092 жыл бұрын
Потрясающе
@proalex1112 жыл бұрын
спасибо лектору
@oficsu3 жыл бұрын
51:52: "...вы можете ставить сколько угодно подчёркиваний в конце..." Из [lex.name] пункта 3.1: "Each identifier that contains a double underscore ... is reserved to the implementation for any use" Таким образом, имена с двумя или более подчёркиваниями подряд в конце будут иметь в своём составе хотя бы одно двойное подчёркивание, и они запрещены даже более строго, чем имена, начинающиеся с одного подчёркивания, - не только в глобальном пространстве имён Так что да, сколько угодно, но ни в коем случае не более одного :)
@tilir3 жыл бұрын
Я формально согласен. Реально в любой реализации стандартной библиотеки идентификаторы "чтобы не пересекались" именно что начинаются с подчёркиваний.
@fedorbabkin2 жыл бұрын
Как хотелось бы услышать от вас иронический рассказ о холиварах между фанатами и хейтерами С++ vs true C vs Rust, сдобренный тонким юмором и несравненным сарказмом.
@ЗапахПопочки2 жыл бұрын
Большое спасибо Вам за лекции. Не могли бы Вы выложить лекции по ассемблеру? Спасибо заранее.
@TOSHIKGAME Жыл бұрын
Большое спасибо!!! теперь то я точно уверен,что я тупой 😂.надо,надо как то подтягиваться😢
@ds94102 жыл бұрын
Спасибо. Интересно. С юмором. Про кошку в яблочко.
@deathstar97393 жыл бұрын
Спасибо за лекцию! Ждём special на 2к подписчиков!
@tilir3 жыл бұрын
Сейчас выкладка будет каждую неделю, выпуск на 2к не втиснуть в график. Поэтому он будет зимой, когда бакалавры пойдут на зачетную неделю. Слайды уже готовы.
@FroL_Onn2 жыл бұрын
Спасибо огромное за леции! Очень круто! Было бы классно ещё и Ваши лекции по C, которые Вы упомянули в начале, тоже посмотреть. Нигде не лежат?
@tilir2 жыл бұрын
Пока нигде, запись планируется.
@kotanvich Жыл бұрын
@@tilir скажите, вопрос про функцию сорт: как я понимаю, выигрыш будет в с++ коде, как продемонстрировано в видео, только в случае возможности проинлайнить, но этой возможности не будет, когда мы динамически линкуем модуль, где описан объект, массив которых мы и хотим сортировать. В общем так ли это? Т.е. инлайн we работает только в случае статического (времени компиляции) полиморфизма? Вы в видел упоминали, что эффективность с++ можно сломать и потом починить, вероятно, речь и идёт о динамическом связывании, не могли бы подсказать, где про это почитать/посмотреть? p.s. спасибо, очень крутые лекции, лучшего материала я не встречал!
@ВладимирВеретенников-я1н Жыл бұрын
@@tilir Спасибо за Ваш труд! Да, увидеть лекции по "C" было бы здорово. У Вас очень приятная и простая для понимания подача материала. За всем этим чувствуется опыт и огромная база знаний!
@Huckleberry_F2 ай бұрын
Было б очень здорово C шные лекции тоже.
@georgezadesenets43462 жыл бұрын
Круто!
@Glebosyatina-l4e9 ай бұрын
Константин Игоревич, очень благодарен вам за то, что даете возможность людям слушать такие прекрасные лекции. Интересует вопрос по поводу литературы, как вы относитесь к Стивену Прата?
@tilir9 ай бұрын
Неплохо, но без какого то полёта мысли. Я бы специально эту книгу не отмечал. Но и антирекомендаций у меня нет.
@andreykhakimov55883 жыл бұрын
Спасибо!
@anoona50153 жыл бұрын
Эх было бы классно начать с: "если вы думаете что знаете C++..."
@konstantinmorozov64533 жыл бұрын
было бы круто по ассемблеру увидеть такой курс. не порекомендуете материал для его изучения?
@tilir3 жыл бұрын
Я рассказываю ассемблер на первом курсе. Возможно я доберусь до записи первого курса, например в следующем году. Так чтобы вот очень хороших курсов на youtube я как-то и не знаю.
@Kirill-yr5nf2 жыл бұрын
Огромное спасибо! Эх мне бы такого преподавателя по плюсам в своё время) Кстати, книгу Антона Полухина по бусту никак не назвал бы второсортным шлаком
@weekendshow7567 Жыл бұрын
Курс скорее для продолжающих, чем начинающих. не каждый поймёт такой литературный стиль преподавания и объяснений. Ну и соответственно базовым сложно назвать данный курс, с учётом того что рассматривается ассемблер!
@tilir Жыл бұрын
"Базовый курс по C++" это не "первый курс в программировании". Первый курс читается на базе C и ассемблера и занимает год, включая также основные алгоритмы и структуры данных. Ко второму курсу я предполагаю что собравшиеся всё это знают и можно начинать изучать C++. Курс базовый в смысле базы в языке.
@weekendshow75678 ай бұрын
@@tilirок, понятно
@angelaasatryan2183 Жыл бұрын
Thanks for a brilliant lecture. Is the C course that you mentioned also available?
@tilir Жыл бұрын
Nope, planning to record next year.
@konstantinkonstantin456 Жыл бұрын
Super++//!!!
@alexbur1403 жыл бұрын
В классе треугольника функция-член square необосновано не const, хотя на более поздних слайдах становится const.
@tilir3 жыл бұрын
Когда я рассказываю про const, тогда и становится.
@samolisov3 жыл бұрын
15:12 Это же код на чистом Си, не уверен, может в последние стандарты и завезли, но nullptr это ключевое слово из C++ 11.
@tilir3 жыл бұрын
Кстати да, отличное замечание. Я писал на C-подмножестве C++ и пропустил это, набрав на автомате, а вы заметили. Спасибо, внесу в errata =)
@samolisov3 жыл бұрын
@@tilir позволю себе ещё небольшое замечание. 42:22, std::less это же шаблон, хотя у него самого с c++14 есть значение параметра по умолчанию (void), треугольные скобки все равно нужны. Увы даже в c++ 17 и выше CTAD не работает в указании значений по умолчанию параметров шаблонов.
@samolisov3 жыл бұрын
@@tilir и да, лекции реально отличные. Завидую вашим студентам. У нас в свое время преподавали c++ параллельно с программированием под Windows на си, эти два языка не всегда разделялись, да и c++ 11 тогда ещё не было.
@tilir3 жыл бұрын
Согласен. Тоже отличное наблюдение.
@froggolab Жыл бұрын
Константин, огромное спасибо за ваши лекции, смотрю с огромным удовольствием! Есть вопрос - с каким набором знаний студенту следует подходить к изучению этого курса? При просмотре мне часто бывают не понятны многие вещи и создается впечатление, что курс ориентирован на людей, которые уже знают многое в C++ и хотят углубиться. Может быть вы смогли бы посоветовать какие материалы и стек знаний необходимы для успешного изучения этого базового курса? Заранее спасибо за ответ
@tilir Жыл бұрын
Предварительных знаний не требуется, кроме знания языка C и ассемблера в объеме первого курса МФТИ. Требуется способность восстанавливать пробелы используя литературу. Курс рассчитан на большой объём самостоятельной проработки но не перед его началом, а в процессе.
@froggolab Жыл бұрын
@@tilir спасибо за ответ! еще сильнее захотелось одолеть курс
@evgenytarasov25413 жыл бұрын
Ю-туб дико режет комментарии. Информацию по упражнениям из 4-го издания читайте на странице 8 4-го издания. (Упражнения вынесены на сайт автора)
@tilir3 жыл бұрын
Имеется в виду 4-е издание Страуструпа? Надо же. Я был уверен что их просто убрали =) Спасибо за информацию.
@Robinzon__Kruzo3 жыл бұрын
Спасибо за лекцию! Если не секрет, почему решили поменять формат показа слайдов на видео? В целом ничего страшного, но просто вглядываться надо усерднее в физический экран. Мне кажется лучше было как с магистерским курсом: все время показывать запись с экрана и сбоку вставлять кадрированное видео с вами. Или возникли какие-то технические сложности?
@tilir3 жыл бұрын
Наоборот когда слайды важные их виднее. В данном случае это было вынуждено т.к. видео было местами темновато.
@Вовик-д5л11 ай бұрын
@@tilir Почему то с этой лекцией трудности возникли после лекций по С.. много незнакомых вещей, где их добрать?
@DART2WADER2 ай бұрын
Интел)))
@serhiymalokhatko Жыл бұрын
52:44 Что то мне кажется что удаление из хэш-таблицы неверное, вы передаете в hash_.erase(cache_.back()); значение, но никак не ключ для удаления.
@tilir Жыл бұрын
Это кажется уже разбиралось в комментариях. Тут действительно на слайдах кеш не без проблем и это одна из. Те из студентов кто присылали домашние работы увидели это первыми и исправили каждый по своему.
@Fox23-e2z6 ай бұрын
" изучить си за недельки две". М да хотел бы посмотреть на такого человека кто знает Си в полном объёме. От всех его стандартов и всех возможностей за такой срок😁.
@tilir6 ай бұрын
Так в полном объёме и не нужно.
@MrTheRocketmaster2 жыл бұрын
Константин, отличные лекции, спасибо за ваш труд! Всегда приятно слушать грамотного профессионала. А всё-таки позвольте поправочку, коль название лекции у вас на английском (первые слова, которые видит студент, так сказать) - правильно говорится "Ссент ов си плас плас", не скент :) По той же причине, что и компьютер сайенс, а не скаенс.
@tilir2 жыл бұрын
Спасибо. Меня уже поправляли. Есть несколько слов в которых я делаю систематические ошибки: scent (скент), vehicle (вехайкл), entry (энтрай) и еще парочка. Я стараюсь за собой следить и говорить ссент, виикл и энтри, но сбиваюсь.
@ЕвгенийВагапов-с7й2 жыл бұрын
Я бы сказал Deep Dive in С++
@KIR_Engineer6 ай бұрын
Почему при обсуждении способа представления алгоритмов не было классических блок-схем (слайд 22 8:53)? Проходил ряд курсов по программированию от Яндекса, там тоже их не было. Я по основному образованию инженер-конструктор и нас учили описывать алгоритмы в виде блок-схем. По сей день их использую в работе и порой оформляю коллегам исходные данные в таком виде. Ни у кого они не вызывают отторжения, наоборот благодарят.
@tilir6 ай бұрын
Блок-схемы не добавляют читаемости алгоритмам (если не наоборот). Это что-то такое с запахом советских шестидесятых. На листе A3, на миллиметровой бумаге... романтика на любителя. Но вот например в UML для описания архитектуры визуальные диаграммы вполне себе используются и там (на лекции по архитектуре) я их и объясняю.
@KIR_Engineer6 ай бұрын
@@tilir понятно, спасибо за ответ!)
@Александр-т4ш5ю2 жыл бұрын
Спасибо за великолепную лекцию ! Есть один вопрос: в методе lookup_update в случае, если мы не нашли в хеше элемент по ключу и при этом наш список полный, происходит hash_.erase(cache_.back()) 37 строчка кода, это корректно ? Ведь тип cache_.back() не является ни типом ключа хэш-табдицы, ни типом итератора.
@tilir2 жыл бұрын
Да уже обсуждали тут в комментариях. На слайдах упрощённый кеш где ключи равны значениям. В реальности там будет храниться пара и искать вы будете cache.back().first или что-то вроде того.
@kotanvich Жыл бұрын
@tilir Скажите, вопрос про функцию сорт: как я понимаю, выйгрыш будет в с++ коде, как продемонстрировано в видео, только в случае возможности проинлайнить, но этой возможности не будет, когда мы динамически линкуем модуль, где описан объект, массив которых мы и хотим сортировать. В общем так ли это? Т.е. инлайн we работает только в случае статического (времени компиляции) полиморфизма?
@tilir Жыл бұрын
Нет это не так. Выигрыш будет всегда т.к. хедер с шаблоном обязан быть связан статически.
@Якстатинепонимаюкак2 жыл бұрын
а есть лекции которые читаються для первого курса ?
@tilir2 жыл бұрын
Пока нет.
@sevenb1t2 жыл бұрын
А можно детали, почему когда мы пишем хорошую хэш таблицу, мы сделаем один список и указатели внутрь него? Почему не динамический массив бакетов плюс хэш-функция, которая вычисляет индекс в массиве по ключу?
@tilir2 жыл бұрын
Из-за рехеша. О хороших хеш-таблицах в этом курсе есть лекция "ассоциативные контейнеры" можете её посмотреть.
@sevenb1t2 жыл бұрын
@@tilir спасибо!
@user-apostata3 жыл бұрын
Вы говорите, что ведёте курс си. А есть возможность его тоже выложить.
@tilir3 жыл бұрын
Там мало экшена. Это трёхчасовые семинары где я процентов 50 времени хожу по рядам, смотрю как люди решают простые задачки, что-то лично подсказываю и т. п. Все материалы, как водится, в открытом доступе: слайды cs.mipt.ru/wp/?page_id=7775 и задачник olymp1.vdi.mipt.ru Я думаю я к следующему году придумаю как это записать и выложить так, чтобы зрители не умерли от тоски. Например у меня есть идея сделать из моих объяснений выжимку-мультфильм в стиле 3blue1brown или просто заснять отдельно мои объяснения, или что-то в том же духе.
@user-apostata3 жыл бұрын
@@tilir спасибо
@vadimtran41592 жыл бұрын
@@tilir Было бы отлично!
@dragnet2322 жыл бұрын
@@tilir было бы здорово!!! Надеюсь мир увидит это в скором будущем!!!
@apexbreadator5262 Жыл бұрын
Здравствуйте! Только начал учить С++. А почему мы не можем использовать просто хэш таблицу без использования листа? У неё и вставка, поиск и удаление О(1)
@tilir Жыл бұрын
А вы попробуйте там найти элемент к которому последним обращались. Вообще если к вам приходит такого рода идея пробуйте на бумажке спрототипировать а лучше даже просто написать программу.
@HelloWorld-il4rs Жыл бұрын
Говорят, что язык Си это подмножество языка Си++. А как правильно делать? 1. Сначала изучить Си, затем с этими знаниями изучать Си ++. 2. Начать изучать Си++ и параллельно изучить Си, предварительно не изучая Си.
@tilir Жыл бұрын
Есть разные мнения но мне кажется правильно так: на первом курсе Си и ассемблер, на втором C++.
@ДенисИдрисов-з3ф Жыл бұрын
начальный уровень обоих языков одинаковый. Поэтому, можете сразу изучать с++. Изучив начальный уровень языка с++, вы будете владеть начальным уровнем сишки тоже.
@hatiko8227 Жыл бұрын
А последний том про плюсы из трёхтомника А.В.Столярова тоже второсортный шлак или вам просто не довелось его читать? Очень интересно узнать что вы думаете о работах этого автора.
@tilir Жыл бұрын
Я уже где-то про Столярова высказывался. Если коротко, то я бы не рекомендовал. Я, правда, его не столько читал, сколько проглядывал по диагонали, но в общем мне хватило. Да там и введения достаточно. Это не просто бессмысленная для развития книжка, это книжка (с моей точки зрения) вредная.
@Kolbastero Жыл бұрын
Здраствуйте, Константин Владимиров! Я не студент МФТИ, но как видите я тут. На моменте, когда вы разбирали списки литературы, у меня возник вопрос, почему там не было Брюса Эккеля? Название книги: "Философия С++. Введение в стандартный С++"
@tilir Жыл бұрын
А почему он тут должен быть? Ничего плохого про Эккеля не скажу, но это явно не блестящая книга и не мастрид. Так, серединка второго эшелона. Я никак её при подготовке лекций не использовал, не цитировал и конечно её нет в списке литературы.
@ЛеонидСидоров-б9б11 ай бұрын
А почему надо обязательно писать свои реализации? Есть GLib, например, в нем уже есть списки, хеш-таблицы и всё прочее...
@randomcraft23459 ай бұрын
1. Лучше начинаешь понимать как они работают. 2. В сравнении с более удачной реализацией понимаешь - расти есть ещё куда (и возможно, даже поймёшь куда). 3. Если у тебя результат лучше - можно порадоваться, что получилось ( правда, с такими библиотеками *соревноваться* - та ещё задача)) ). 4. Практика. Теоретические и практические знания и навыки - вещи разные, которые очень хорошо дополняют друг друга, но с большим трудом вытекают друг из друга. Сейчас много что уже реализовано, а то что не реализовано - либо трудно, либо крайне не очевидно. И как же дорасти до такого уровня? Правильно, делать что-то самому, даже если это уже сделано другими. Даже наоборот, это полезнее, потом можно увидеть в сравнении свои недостатки и преимущества, на примере научиться лучшим практикам (имеет смысл, если сделаешь сам, а уже потом посмотришь; иное тоже эффективно, но меньше). Список можно продолжать бесконечно.
@randomcraft23459 ай бұрын
Ещё забыл важный нюанс. Библиотеки общего назначения делаются под всех, то-есть с наиболее оптимальными решениями. В твоей задаче могут быть не нужны некоторые детали, а некоторые отсутствующие - наоборот нужны. Тут вариант только один, сделать тоже самое, но под свои нужды. Те же списки можно реализовать множеством способов, некоторые из них могут эффективнее использовать память, другие будут быстрее работать, и т.д..
@rizla-v4x Жыл бұрын
Возможно, Константин был в курсе идей по обучению C++, предложенных Bjarne Stroustrup kzbin.info/www/bejne/nImViGakg899f9E и Kate Gregory kzbin.info/www/bejne/j5-6maSeg8mMr80 . Но он пошёл дальше! Именно поэтому его курс по C++ лучше, чем другие! P.S.: я искренне восхищен Константином и его логикой изложения идей! Единственное, по правде говоря, я бы перед этим курсом в тайне прочитал 3 книги Bjarne Stroustrup (с задачами из третьего издания, как и было сказано). Просто чтобы происходящее казалось непринужденной беседой )))
@tilir Жыл бұрын
Я в курсе и я не в восторге. Тут зависит от целей обучения. Для моих целей подход госпожи Грегори не подходит.
@H01HUD9 Жыл бұрын
О каких трёх книгах книгах Страуструпа вы имеете ввиду?
@minorman Жыл бұрын
31:00
@victormustya17453 жыл бұрын
А это так и должно быть, что на слайдах указателя не видно? (7:59)
@tilir3 жыл бұрын
Я там в процессе исправляюсь =)
@solrainer72 жыл бұрын
Здравствуйте. А разве шаблоны с++ это не предпроцессорные автоматические реализации различных вариантов функции или метода? Вы говорите что они идут внутри грамматики языка а не предпроцессора.
@tilir2 жыл бұрын
Шаблоны не имеют отношения к препроцессору. Это часть грамматики.
@anoona50153 жыл бұрын
Почему-то думал что у вас аудитория всегда постарше курса так на 3
@tilir3 жыл бұрын
На этом же канале лежит магистерский курс. Там для пятого. А этот базовый бакалаврский. Он для второго.
@DART2WADER3 жыл бұрын
@@tilir будем посмотреть продолжение.
@Fox23-e2z6 ай бұрын
Скажите пожалуйста, просто любопытно а литература за 1988 год разве еще актуальна 🤨?
@tilir6 ай бұрын
Да.
@ГеннадийЕрошин2 жыл бұрын
Понимаю, что эта лекция может помочь мне в явлении гармонии народу. Поясняю, я пытаюсь создать велосипед. Идея: из центра сферы треугольниками изобразить путь, который доходя до внешней оболочки построенной тоже на треугольниках , при совпадении пронизывается лучом, совершая цикл. Так вот у меня модель. у вас глубокие знания, но я не уверен, что удастся так погрузиться в понимание всей темы. Ваши энциклопедические знания давят на меня ужасно.
@vicigneus2593 жыл бұрын
Вы спрашиваете про знание Си. Я знаю, что Вы преподавали Си, но почему то не выкладываете лекции по этому языку. Хотелось бы с ними ознакомится. Хотя бы по тому, что Си можно выучить, а С++ нет. Спасибо.
@tilir3 жыл бұрын
Я уже отвечал ниже в комментариях. Мои семинары по языку C сложны для экранизации. Там мало экшена, люди там много решают задачи прямо на семинаре и т.п. Все материалы выложены. Зайдите на cs.mipt.ru/wp/?page_id=7775 и дальше по ссылкам.
@victormustya17453 жыл бұрын
"Возможность из C, которой нет в C++" --- это ты не про VLA, часом?
@tilir3 жыл бұрын
Ну я про VLA вообще не думал, но наверное да (хотя с моей точки зрения его и в C нет, там сомнительная условная поддержка в стандарте). Ещё про всякий там restrict, про static в аргументах, про расширенную инициализацию массивов и прочее.
@victormustya17453 жыл бұрын
@@tilir "расширенная инициализация массивов" это как выглядит?