Библиотека собеса по C++ | вопросы с собеседований
4.59K subscribers
403 photos
2 videos
184 links
Вопросы с собеседований по C++ и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/9ccf302b

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
😨 Страх ошибок: как он мешает вам писать код

Страх совершить ошибку при внесении изменений в код может серьезно ограничивать профессиональный рост программиста. Как преодолеть этот психологический барьер и стать более эффективным разработчиком? Ответы — в нашей статье.
August 6, 2024
🦊 Какие основные структуры данных STL ты знаешь?

vector, deque, list, array, forward_list, string, set, map
August 7, 2024
Forwarded from Библиотека программиста | программирование, кодинг, разработка
August 8, 2024
August 10, 2024
August 12, 2024
August 15, 2024
August 15, 2024
😱 Как узнать версию C++ из кода?

Для того чтобы узнать версию C++ из кода можно воспользоваться макросом __cplusplus. Он будет заменён числом, которое будет указывать на версию. Например для C++14 это будет 201402, а для C++20 — 202002.

Для компилятора MSVC нужно указать опцию /Zc:__cplusplus, иначе он будет всегда выдавать 199711
August 16, 2024
🏵️ Что такое God Object?

God Object — это антипаттерн. Так же его называют Божественный Объект

• Это объект, который берёт на себя слишком много ответственности
• Нарушает принцип Единственной ответственности (SOLID)
• Часто становится сложным для понимания, поддержки и тестирования

Как понять что это God Object?
• Объект отвечает за множество задач логически не связанные между собой
• Чрезмерная централизация логики. Большая часть логики сосредоточенна в одном классе, что приводит к монолитной структуре кода

Проблемы с использованием
• Сложность изменений. Изменяя одну часть, можно повлиять на всю систему целиком

Как избежать God Object?
• Разделять ответственность на несколько классов или модулей
• Каждый из которых отвечает за отдельную задачу
• Следуйте принципам SOLID
August 18, 2024
🥪 Что такое std::forward?

std::forward — шаблонная функция определённая в стандартной библиотеке

std::forward используется для perfect forwarding, т.е. когда параметр из одной функции передать в другую функцию и при этом сохранить способ передачи

std::forward не делает ниаких действий во время выполнения

❗️Примерная реализация
template<class T>
T&& forward(typename remove_reference<T>::type& a)
{
return static_cast<T&&>(a);
}

- remove_reference - в данном случае указывает, что функция всегда принимает l-value reference
August 19, 2024
🤔 Кем я хочу быть – DS или ML engineer? Стоит ли понимать специфику сферы?

🗓 22 августа на вебинаре «Как меняется математика в разных индустриях: от мобильных игр к фондовым рынкам» ответим на эти и другие вопросы.

Приглашенный спикер: Павел Запольский – Senior Quantitative Researcher at Exness и Co-founder GrowLytics. Запустивший более 10 проектов по машинному обучению и анализу данных для ведущих компаний.

😮 На вебинаре узнаете:

🔵 Математика в бизнесе: Чем отличаются разные сферы друг от друга. Почему стоит понимать специфику сферы
🔵 ML и продуктовое IT: Чем различается математическая сложность от индустрии к индустрии. Какие к ним необходимы уровни подготовки
🔵 Баевская математика в GameDev. Баевская математика как альтернатива AB тестированию. Как математические методы применяются в разработке игр
🔵 Finance: Что такое количественные финансы и математическое моделирование. Обсудим текущие индустриальные тренды в отрасли
🔵 Backtest: Как знания математики делают ваши активы более надежными
🔵 На практике подробно разберем два математических кейса по GameDev и Backtest.

➡️ Зарегистрироваться: https://proglib.io/w/602b9900
Please open Telegram to view this post
VIEW IN TELEGRAM
August 20, 2024
Вакансии «Библиотеки программиста» — ждем вас в команде!

Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉авторов в наше медиа proglib.io
👉контент-менеджеров для ведения телеграм-каналов

Подробности тут

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾
August 21, 2024
😱 Что такое склейка ссылок?

В старом стандарте (до C++11) если при разворачивании шаблона получался тип, который являлся ссылкой на ссылку было ошибкой. В новом стандарте появились правила склейки

Правила склейки
В том случае если при разворачивании шаблона возникает двойная ссылка, например l-value ссылка на l-value ссылку, то получаем обычную ссылку (T& & -> T&):
• T& & -> T&
• T& && -> T&
• T&& & -> T&
• T&& && -> T&&

Правила склейки позволяют определить универсальную ссылку

Универсальная ссылка — это аргумент функции, которая передаётся как r-value, при этом его тип является параметром шаблона

Она позволяет работать как с r-value, так и с l-value ссылками

template
void func (T&& t) {}



• Если вызвать func с l-value типа A, то тип T будет выведен как ссылка A&
• Если вызвать func с r-value типа A, то тип T будет выведен как A
August 21, 2024