Библиотека собеса по C++ | вопросы с собеседований
Открыть в Telegram
Вопросы с собеседований по C++ и ответы на них. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/9ccf302b Для обратной связи: @proglibrary_feeedback_bot
Больше5 425
Подписчики
-824 часа
-13 9517 дней
-13 97630 день
Архив постов
🔥 Время прокачивать свои навыки и RustИ !!!
🫵 Проверь себя - ответь на вопросы и узнай, хорошо ли ты знаешь Rust и его ключевые особенности. Тест является частью полноценного онлайн-курса «Rust Developer. Professional» от Отус.
➡️ ПРОЙТИ ТЕСТ: https://otus.pw/Vnto/
Почему именно сейчас в 2024 году Rust так популярен?
Безопасность, высокая производительность, многопоточность и кроссплатформенность. Он подходит для создания безопасных, эффективных и многопоточных приложений на разных платформах.
💥 Бонусом за успешно пройденный тест, получишь доступ к записям открытых вебинаров курса (доступ на странице курса).
Пройди тест, смотри наши вебинары и приходи учиться! Ждем.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru Erid 2VtzqwZiUWd
🍔 Библиотека std::stacktrace
В C++23 появилась библиотека std::stacktrace для получения текущего стека вызовов функций,
а именно последовательность вызовов от точки входа main()
С помощью библиотеки можно посмотреть описание функции description() , исходный файл в котором находится функция source file() и номер строки source line()
🍔 Как преобразовать std::string в const char* или char*?
❗Если мы хотим передать std::string в функцию, которой требуется const char*, можно использовать .c_str()
❗Для получения неконстантной строки char*, вызываем .data(). Появилось в C++17, до этого можно было использовать &str[0]
‼️ Указатель становится недействительным, если строка уничтожается
😱 Почему префиксный инкремент быстрее чем постфиксный?
❗Для постфиксного итератора неявно выделяется дополнительная память для хранения промежуточной переменной
🍔 Как установить точность вывода в консоль для конкретной переменной
Для этого можно использовать вы можете связать функцию std::setprecision с переменной, для которой хотите установить точность
std::setprecision — функция из библиотеки iomanip (STL), которая устанавливает точность для вывода чисел с плавающей точкой. В аргументе std::setprecision задаётся количество цифр, которые мы хотим вывести
🍔 Как распечатать все установленные переменные в CMake?
При использовании CMake часто возникает ситуация, когда поведение может отличаться от ожидаемого. Например установленная не та версия компилятора, стандарт C++ отличается от ожидаемого, проектные зависимости появившиеся неизвестно от куда. Один из способов решения — поискать проблему в установленных внешних переменных, для этого можно написать свой макрос (пример на картинке выше)
🦾🧠🏋️Качаем мозги к лету!
Курс «Алгоритмы и структуры данных» для тех, кто хочет научиться работать с алгоритмами, подготовиться к собеседованию крупную IT-компанию и начать брать более сложные проекты.
➡️ Алгоритмы и структуры данных 35 990 ₽ 21 594 ₽
⭐️ Переходите и активируйте бесплатные вводные занятия курса — https://proglib.io/w/da6727d1
Вас ждут:
– 150 практических заданий и 47 видеолекций
– бессрочный доступ к обучению
– поддержка преподавателя в чате
А также очень харизматичный спикер из Яндекса 🙌🏻
💎 Пройдите увлекательный тест по Solidity, ответьте на 15 вопросов и проверьте, насколько вы готовы к обучению на курсе — «Разработка децентрализованных приложений»
На курсе вас ждут все необходимые навыки работы с Blockchain и DeFi (децентрализованные финансы) — работа с угрозами безопасности блокчейн, хэш-функциями и цифровыми подписями, запуск узла, написание смартконтрактов, дизайн пользовательского интерфейса (UI) и пользовательского опыта (UX).
Вы не только получите практические навыки в работе с Blockchain, но и освоите темы децентрализации, неизменяемости и механизмов консенсуса. Практика проходит в режиме реального времени.
👉 ПРОЙТИ ТЕСТ — https://clck.ru/3AKDr3
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 Erid 2VtzqugvsZi🧐 Для чего нужна функция WinMain?
Функция WinMain является точкой входа в графические приложения в операционной системе Windows. Главная отличительная особенность отличающая её от обычной main заключается в том, что для графического приложения не будет выведено никакой консоли
Repost from Библиотека задач по C++ | тесты, код, задания
🫣 Что за оператор --> ?
На самом деле это два отдельных оператора, -- и >, т.е. постфиксный декремент и оператор больше. Условие можно переписать как while( (x--) > 0 )
🔮 Челлендж от анализатора PVS-Studio: насколько вы внимательны?
Анализаторы кода легко и быстро умеют находить множество ошибок, неочевидных с первого взгляда. Попробуйте наийти ошибки вручную😜
Челлендж состоит из 10 фрагментов кода, в которых есть ошибки. Все они взяты из известных Open Source проектов. Если вы успеваете найти ошибку за 60 секунд — вам начисляется один балл. Фрагменты кода короткие, поэтому 60 секунд — это честное ограничение
👉 Ссылка
👩🚀 Откуда космический корабль в C++?
<=> — это оператор spaceship operator в C++. Он был введен в стандарте C++20 и предназначен для использования в контексте трехзначной операции сравнения
🔎 Этот оператор выполняет сравнение двух выражений и возвращает одно из трех значений:
• Отрицательное значение, если левый операнд меньше правого
• Ноль, если левый операнд равен правому
• Положительное значение, если левый операнд больше правого
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🍔 В чём заключается смысл принцип инверсии зависимостей?
Принцип инверсии зависимостей (Dependency inversion principle) — пятый принцип SOLID
❗ Описание
- Лучше зависеть от абстракции, чем от конкретной имплементации
- В ООП лучше передавать интерфейс, чем реализацию его реализацию
🍔 Что такое принцип разделения интерфейса?
Принцип разделения интерфейса (Interface segregation principle) — четвёртый принцип SOLID
❗ Описание
- Множество интерфейсов к разным клиентам гораздо лучше, чем один большой, который покрывает требование всех клиентов
- Снижается связанность в коде и тем самым уменьшает сложность его поддержки
🍔Что делают std::move и std::forward?
❗Если простыми словами, то std::move делает && (r-value), чтобы из всех перегрузок была выбрана именно перегрузка с &&
❗std::forward предназначен для шаблонов, чтобы && передалось в вызываемую из шаблона функцию без изменений. В итоге срабатывает move-семантика и убирается ненужное копирование данных при вызове
🔍 Что такое std::span?
std::span — это шаблонный класс-обертка, который предоставляет удобный интерфейс доступа к последовательности элементов, не владея ими. Он позволяет работать с частью или целым массивом, без копирования данных
🛠️ Как это работает?
Просто создаём объект std::span, указав начальный и конечный указатели на массив, либо контейнер, и получаем легкий доступ к элементам
🧨 Как преобразовать std::vector в массив?
Это довольно просто сделать. Достаточно просто разыменовать первый элемент вектора
std::vector<int> vec = {1, 2 , 3};
int* arr = &vrc[0]
Это работает, потому что все элементы std::vector хранятся последовательно
🧨 Для чего нужен принцип подстановки Лисков?
• Принцип подстановки Лисков (Liskov substitution principle) — третий принцип SOLID
• У класса S отнаследованного от T должна быть возможность применяться там, где ожидается T. При этом ожидается, что программа адекватно будет работать
• Идея принципа в том, что контракт (он же функционал), который гарантирует предок должен выполняться и в наследнике
🧨 Что делает std::iota?
std::iota — алгоритм из стандартной библиотеки C++. С его помощью можно заполнять последовательности диапазоном значений, начиная с начального значения и до конца заполняемой структуры
Если выбрать начальное значение за 1, то последовательность будет: 1, 2, 3, 4, 5,...
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
