Еще стоит добавить, что при private наследовании полиморфизм невозможен, что равносильно комозиции. Но остаются плюсы наследования - override, использование protected полей и методов, возможность играться с конструкторами и методами с использованием using.
на счет new и malloc так же стоит упомянуть, что new является типозащищенным выделением, ибо компилятор заранее знает, под какого типа объект память будет выделяться
5:59 Уfind для std::set (т.к. он на бинарных деревьях поиска) и поиска дихотомией по упорядоченному std::vector одинаковая асимптотическая сложность O(log2 n).
@@vladimir_balun_programming Не посоветуете случаем, как лучше это учить? Книги может какие? Я базовый уровень языка выучил, но в видео для меня было много неизвестного
В топике про ссылки я бы также добавил:" Ссылка семантически эквивалентна той переменной, на которую она ссылается. Значение ссылки постоянно, задаётся в момент ее создания и неизменно (на протяжении жизни)".
Все впринципе по стандарту( шучу, учу с++ вторую неделю и понимаю что с моим ограниченным временем в моменте мне учить около 2 лет до Джуна, если не брошу) но я так и планирую впринципе начать искать работу в it через года полтора два ибо понимаю что эти знания не только надо знать ,их надо прочувствовать в работе в практике и тд
Блин, а как быть тем кто использует с++ и никогда не задумывался как компилятором например устроены vtable или каким образом он оптимизирует последовательности операторов?
Мне кажется, чем больше тонкостей и нюансов знает разработчик, тем он более крутой специалист! Конечно же, знать все абсолютно нереально, но стремиться к этому все-таки стоит)
Для дедлока достаточно одного мьютекса. Например рекурсия. Или в первом методе берём мьютекс и потом вызываем второй метод, в котором так же пытаемся взять мьютекс. Приехали. std::mutex не рекурсивный.
Про вопрос о том, где будет быстрее поиск: поиск быстрее будет в сете, т.к. сет такое же дерево, как и мап, т.е. отсортированное, вектор по-умолчанию не сортирует элементы, а в описанном коде нет гарантии того, что вектор определен элементами в отсортированном порядке. Более того, скорее всего можно получить ошибку в рантайме или даже ошибку компиляции( этот момент нужно уточнить).
Все зависит от конкретной компании, но так или иначе, любая компания, тем или иным образом, смотрит на то, как вы обращаетесь со своим инструментом (языком программирования)
Немного поправлю, const int value = *it; безопасно не зависимо от того, инвалидируется итератор после этого или нет. Небезопасным будет const int &value = *it;
@@rumgot нет, это от того, что ссылка указывает на оригинальное значение, если то значение поменяется, то и значение по ссылке изменится, если *it станет невалидным, то и ссылка невалидна. А в первом случае значение копируется в переменную int и не важно const она или нет, это отдельная копия и она будет хранить свое значение.
@@ruslankostiuk1475 у ссылки будет адрес объекта, на который она указывает. То есть можно сказать, что у неё нет собственного адреса. Но разыменовать её никто не запрещает.
Многие видео основы на том, что у зрителя уже есть определенный "background". Если у кого-то есть определенные желание в плане разбора какой-либо темы, то об этом всем лучше писать в комментариях, и тогда я возможно сделаю отдельный видео урок по этой теме...
@@mihax56 Ты выебываешься на пустом месте. Ничего сверхъестественного не требуют в том числе и от сеньеров. Везде есть специализация и она приходит с опытом. Знать всего невозможно. Но для того чтобы быть занятым в конкретной области вышеперечисленных знаний вполне достаточно. Всему остальному научат. Тебе все равно не доверят с улицы сразу решать архитектурные задачи, так что будешь сидеть и писать ровно то что требует манифест.
Попадались ли тебе вопросы из этого видео на собеседованиях по С++?
Очередное мотивирующее видео, которое в очередной раз подтверждает, что я нифига не знаю
ООО, класное видео.
Давай продолжай делать подобные видосы.
Спасибо, буду стараться)
Оказывается, многое знаю, но одновременно многое нужно изучать. Спасибо!
Еще стоит добавить, что при private наследовании полиморфизм невозможен, что равносильно комозиции. Но остаются плюсы наследования - override, использование protected полей и методов, возможность играться с конструкторами и методами с использованием using.
на счет new и malloc так же стоит упомянуть, что new является типозащищенным выделением, ибо компилятор заранее знает, под какого типа объект память будет выделяться
Там много еще нюансов, исключения, placement new и так далее...
Рассказал о самом основном.
Ох ты ж бля, Страуструп, это ты??
5:59 Уfind для std::set (т.к. он на бинарных деревьях поиска) и поиска дихотомией по упорядоченному std::vector одинаковая асимптотическая сложность O(log2 n).
Тоже полез смотреть и что там, что там одинаково.
Познавательно, сразу ясно что ничего не знаешь 🤯
Все возможно изучить, главное только желание)
@@vladimir_balun_programming Не посоветуете случаем, как лучше это учить? Книги может какие? Я базовый уровень языка выучил, но в видео для меня было много неизвестного
В топике про ссылки я бы также добавил:" Ссылка семантически эквивалентна той переменной, на которую она ссылается. Значение ссылки постоянно, задаётся в момент ее создания и неизменно (на протяжении жизни)".
Хорошее дополнение, спасибо!
Заебись! Четко!
Спасибо!
Все впринципе по стандарту( шучу, учу с++ вторую неделю и понимаю что с моим ограниченным временем в моменте мне учить около 2 лет до Джуна, если не брошу) но я так и планирую впринципе начать искать работу в it через года полтора два ибо понимаю что эти знания не только надо знать ,их надо прочувствовать в работе в практике и тд
сложна, рано мне на джуна устраиваться, ну зато хоть знаю, что учить ещё нужно
Все в ваших руках)
Ну как там, 2 года прошло ?
Изи
Как твои успехи? Работаешь?
2:15. Только процесс называется не компиляции, а сборки. Процесс сборки проекта: препроцессинг, компиляция, линковка.
Согласен
Блин, а как быть тем кто использует с++ и никогда не задумывался как компилятором например устроены vtable или каким образом он оптимизирует последовательности операторов?
Сесть и понять как это работает
Мне кажется, чем больше тонкостей и нюансов знает разработчик, тем он более крутой специалист!
Конечно же, знать все абсолютно нереально, но стремиться к этому все-таки стоит)
А как же move семантика, perfect forwarding, decltype, лямды и тп, это разве не спрашивают?
Спасибо
Рад стараться!
Для дедлока достаточно одного мьютекса. Например рекурсия. Или в первом методе берём мьютекс и потом вызываем второй метод, в котором так же пытаемся взять мьютекс. Приехали. std::mutex не рекурсивный.
Это UB, возможен как дедлок, так и и другая непредвиденная ситуация.
еще очень часто спрашивают про RAII
Ну да, тоже могут и за него спросить
как это запомнить то всё?
ЕМНИП, если в классе нет виртуальных функций, то virtual table не создается.
А видео разве говорится, что создается? Я не помню такое, чтобы там было
Надо бы громкость микрофона увеличить вам, плохо
слышно
Спасибо, учту в следующих видео!
какие материалы необходмио и достаточно изучить, чтобы самостоятельно ответить на данныые вопросы?
Не могу посоветовать что-то конкретное...
Это скорее итеративный процесс изучения теории и закрепления ее практикой)
Ну и реализця std::map не закреплена стандартом, просто сказать про свойства контейнеров.
А сейчас вопросы на собеседованиях такие же? Или входной порог уже вырос за 4 года?
Да, всё также
Расскажи пожалуйста как лучше учиться работе с компьютерными сетями. А ля систематичный план)
Таненбаум думаю самое то)
Лучше Олиферов почитай, тем более на русском
Про вопрос о том, где будет быстрее поиск: поиск быстрее будет в сете, т.к. сет такое же дерево, как и мап, т.е. отсортированное, вектор по-умолчанию не сортирует элементы, а в описанном коде нет гарантии того, что вектор определен элементами в отсортированном порядке. Более того, скорее всего можно получить ошибку в рантайме или даже ошибку компиляции( этот момент нужно уточнить).
там ж говорится про бинарный поиск в отсортированном векторе
Бинарный поиск в векторе имелся в виду
А в гейм-студиях такие же вопросы будут задавать по C++?
Нет
Получал тестовое от туда,задание было написать алгоритм А*
Все зависит от конкретной компании, но так или иначе, любая компания, тем или иным образом, смотрит на то, как вы обращаетесь со своим инструментом (языком программирования)
Немного поправлю, const int value = *it; безопасно не зависимо от того, инвалидируется итератор после этого или нет. Небезопасным будет const int &value = *it;
Это оттого, что после разыменовывания любое содержимое можно привести к int?
@@rumgot нет, это от того, что ссылка указывает на оригинальное значение, если то значение поменяется, то и значение по ссылке изменится, если *it станет невалидным, то и ссылка невалидна. А в первом случае значение копируется в переменную int и не важно const она или нет, это отдельная копия и она будет хранить свое значение.
Конкретно в примере 5:20 итератор может стать невалидным до строки const int value = *it;, как я понимаю)
Как-то просто все. Тут базовая база и многого из нее нету, например, мув семантика.
Чего? Я думал struсt просто свой тип данных где есть разные типы данных, не знал что у него есть наследственность и методы
А как давно ты закончил институт?
У меня нет высшего образования на данный момент...
@@vladimir_balun_programming еще студент...?
@@ruslanvolovik2745 Да, учусь заочно, но за плечами уже более трех лет промышленной разработки
@@vladimir_balun_programming да у меня тоже почти 2
@@ruslanvolovik2745 ииии... что в итоге?)
Знание у начинающих по шаблонам на уровне книги Александреску? Кажется, это через чур. Что тогда знать должен разработчик среднего уровня?
Там имелось в виду книга Александреску уже не для начинающих разработчиков)
Не очень расслышал совет, у кого читать шаблоны?
Современное проектирование на C++ | Александреску Андрей
@@vladimir_balun_programming Спасибо!
Можно ли без вышки стать джуном?
Да, конечно!
Видимо вы хотели спросить:
Можно ли с вуза стать Джоном ??
Ответ: нет.
Задачка для любопытных: как добиться дедлока с помощью одного мьютекса?
Рекурсивно, если это не recursive_mutex конечно 👌🏻
@@vladimir_balun_programming на самом деле никак. Программа может уйти в дедлок, но это не обязательно. UB
@@bumbarabun А причём тут UB? Вопрос стоял как в дедлок уйти
@@garorobe UB при том, что никакое поведение не гарантировано. Сегодня может уйти в дедлок, завтра может просто не заметить или сгенерить эксцепшн.
а thread join мы считаем ожидаением освобождения какогото мьютекса?
Тихо очень. На улице не слышно
Спасибо, в следующем видео учту!
У ссылки есть адрес.
Раз она работает на основе указателя, значит его адрес где-то есть. Думаю, автор имел ввиду, что его нельзя получить
@@ruslankostiuk1475 даже в этом случае автор ошибся. Адрес получить возможно.
@@MaximMerz Как тогда получить адрес ссылки, если операция & вернет адрес переменной, на которую ссылается ссылка?
@@ruslankostiuk1475 у ссылки будет адрес объекта, на который она указывает. То есть можно сказать, что у неё нет собственного адреса. Но разыменовать её никто не запрещает.
Авто указатель зло)
Именно по/тому его в 11 задепрекейтили, а в 17 удалили
- std::map реализован на основе красно-чёрного дерева...
Чего? Очень много неразборчивых слов
Многие видео основы на том, что у зрителя уже есть определенный "background".
Если у кого-то есть определенные желание в плане разбора какой-либо темы, то об этом всем лучше писать в комментариях, и тогда я возможно сделаю отдельный видео урок по этой теме...
Правильнее бы говорить что чаще всего реализован, стандарт не указывает какая должна быть реализация.
а шо не так?
по шаблонам в 24 году александреску читать не надо
для подготовки к собеседованию неплохо помогает курс Клейнера ruclips.net/video/vAhym71Sots/видео.html
Хороший материал!
Для дедлока достаточно одного мьютекса, который ты забыл разлочить.
Тот поток, который забыл разлочить - пошел дальше заниматься своими делами, а не заблокировался
@@vladimir_balun_programming не понимаю к чему это. Задедлочиться можно одним мьютексом. В видео говорится, что 2.
set это тоже дерево, и оно тоже упорядоченное, просто в отличии от map не хранит пару ключ значение. так что ответ будет - одинаковое
Там не сравнивался set с map
Литкод надо решать, а не язык дрючить!
Согласен, но это видео не об этом, есть же компании в которых алгоритмы и задачки обговриваются только устно...
Codeforces.com лучше
все эти вопросы задают на собеседовании джуна, к вопросам на собеседовании "программистов постарше" это не имеет никакого отношения.
За программистов постарше все говорит их гитхаб и резюме и их не ищут через холодные собеседования.
@@sergeyinozemcev1070 когда подрастешь и станешь постарше, тогда поймешь, какую хуиту ты тут написал.
@@mihax56 Ты выебываешься на пустом месте. Ничего сверхъестественного не требуют в том числе и от сеньеров. Везде есть специализация и она приходит с опытом. Знать всего невозможно. Но для того чтобы быть занятым в конкретной области вышеперечисленных знаний вполне достаточно. Всему остальному научат. Тебе все равно не доверят с улицы сразу решать архитектурные задачи, так что будешь сидеть и писать ровно то что требует манифест.
Не согласен
Ответь на коммент под видео: ruclips.net/video/74ZoM656uHE/видео.html
Других дел хватает...
ссылка это тип данных и отсюда куча различий с унарной операцией "*", а не синтаксический сахар....
Ссылка - это по сути тот же автоматически-разыменнованный указатель, поэтому и говорю, что синтаксический сахар... Тип, конечно же, у них будет разный
Нафиг они сейчас никому не нужны
Почему это?
Кто не нужен?
@@vladimir_balun_programming походу он про то, что с++ разработчики уже не нужны, хз почему, странный он