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

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

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

Работать у нас: https://job.proglib.io/

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
💡 Зачем нужен __func__?

__func__ — идентификатор, появившийся ещё в C99. Содержит имя функции в скопе которой находится идентификатор
🧨Что такое align(...)?

align(...) — расширение языка, которая задает выравнивание структуры и её элементов

Число в align задаёт выравнивание в байтах и может принимать значения от 1 до 8192

‼️ Начиная с C++11 появилось ключевое слово alignas, работает также, но в отличие от align входит в стандарт языка
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🍰 Зачем нужен std::atomic?

std::atomic — это шаблон для реализации атомарных операций

💡Для std::atomic существуют стандартные алиасы
• std::atomic_bool == std::atomic<bool>
• std::atomic_char == std::atomic<char>
• std::atomic_int == std::atomic<int>
• и т. д.

Полученный из std::atomic объект можно безопасно использоваться из нескольких потоков, не задумываясь о синхронизации
💣 Лучшие книги по C++ для начинающих и продолжающих: ваши рекомендации

Мы ищем лучшие книги (ru, en) по C++, которые помогут как начинающим программистам, делающим свои первые шаги в мире программирования, так и продолжающим программистам, желающим углубить свои знания и перейти на следующий уровень мастерства

Мы также хотели бы узнать, почему именно эти книги вы бы порекомендовали. Расскажите, чем они выделяются среди других, какие сильные стороны у этих книг, и как они помогли вам в вашем профессиональном развитии. Ваши обоснования помогут другим программистам принять решение о том, какую книгу выбрать для дальнейшего обучения

😏👉 Опросик
💈 Для чего нужна библиотека limits.h?

limits.h — это файл, включаемый в стандартную библиотеку языка программирования Си, который содержит определения характеристик общих типов переменных. Эти значения могут различаться в зависимости от конкретной реализации, но обычно они не меньше диапазона, определенного для конечного представления

🍎Сюда входят максимальные и минимальные значения для основных типов

🍍Особенно часто в коде встречаются INT_MIN, INT_MAX

👉 Дока
💡 Как вы думаете про что принцип Open-closed principle (SOLID)?

Свой вариант можете написать в комментариях

Описание
• ПО должно быть открыто для расширения, но закрыто для модификации
• Мы должны легко уметь от наследоваться от какого-то класса, но при этом наше наследование не должно изменять поведение оригинального класса
• Если всё-таки хотим поменять, то меняем в наследнике
🤖 Диапазоны значений в case

В GCC есть расширение, позволяющее использовать диапазоны в конструкции switch-case

Это бывает удобно, когда можно проверяемое значение привести к числовому. Так не придется писать двойные проверки в конструкции if
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
💣 Как отключить вывод предупреждений о неиспользуемых переменных?

Бывают ситуации, когда приходится пользоваться сторонним кодом (например библиотеками). В нём могут оставаться не используемые переменные, оставленные по той или иной причине. Компилятор на такого рода вещи выдаёт предупреждения

Что бы вывод компиляции не захламлялся данного рода сообщениями, и было проще читать полезные предупреждения, есть специальный флаг (-Wno-unused-variable)

Флаг компилятора -Wno-unused-variable используется для отключения предупреждений, связанных с неиспользуемыми переменными во время компиляции программы
🧨 Что делает std::iota?

std::iota — алгоритм из стандартной библиотеки C++. С его помощью можно заполнять последовательности диапазоном значений, начиная с начального значения и до конца заполняемой структуры

Если выбрать начальное значение за 1, то последовательность будет: 1, 2, 3, 4, 5,...
🧨 Для чего нужен принцип подстановки Лисков?


Принцип подстановки Лисков (Liskov substitution principle) — третий принцип SOLID
• У класса S отнаследованного от T должна быть возможность применяться там, где ожидается T. При этом ожидается, что программа адекватно будет работать
• Идея принципа в том, что контракт (он же функционал), который гарантирует предок должен выполняться и в наследнике
🧨 Как преобразовать std::vector в массив?

Это довольно просто сделать. Достаточно просто разыменовать первый элемент вектора

std::vector<int> vec = {1, 2 , 3};
int* arr = &vrc[0];


Это работает, потому что все элементы std::vector хранятся последовательно
🔍 Что такое std::span?

std::span — это шаблонный класс-обертка, который предоставляет удобный интерфейс доступа к последовательности элементов, не владея ими. Он позволяет работать с частью или целым массивом, без копирования данных

🛠 Как это работает?

Просто создаём объект std::span, указав начальный указатель на массив и размер, либо контейнер, и получаем легкий доступ к элементам
🍔Что делают std::move и std::forward?

Если простыми словами, то std::move делает && (r-value), чтобы из всех перегрузок была выбрана именно перегрузка с &&

std::forward предназначен для шаблонов, чтобы && передалось в вызываемую из шаблона функцию без изменений. В итоге срабатывает move-семантика и убирается ненужное копирование данных при вызове
🍔 Что такое принцип разделения интерфейса?

Принцип разделения интерфейса (Interface segregation principle) — четвёртый принцип SOLID

Описание
- Множество интерфейсов к разным клиентам гораздо лучше, чем один большой, который покрывает требование всех клиентов
- Снижается связанность в коде и тем самым уменьшает сложность его поддержки
🍔 В чём заключается смысл принцип инверсии зависимостей?

Принцип инверсии зависимостей (Dependency inversion principle) — пятый принцип SOLID

❗️ Описание
- Лучше зависеть от абстракции, чем от конкретной имплементации
- В ООП лучше передавать интерфейс, чем его реализацию
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👩‍🚀 Откуда космический корабль в C++?

<=> — это оператор spaceship operator в C++. Он был введен в стандарте C++20 и предназначен для использования в контексте трехзначной операции сравнения

🔎 Этот оператор выполняет сравнение двух выражений и возвращает одно из трех значений:
• Отрицательное значение, если левый операнд меньше правого
• Ноль, если левый операнд равен правому
• Положительное значение, если левый операнд больше правого