Уютное сообщество С++ разработчиков
Ir al canal en Telegram
Изучаем C++. Ресурсы, обучения, задачи, шпаргалки. Вопросы с собеседований по C++ и ответы на них. Задачи и тесты по C++ для тренировки и обучения. По рекламе: @anothertechrock
Mostrar más776
Suscriptores
Sin datos24 horas
-27 días
-230 días
Archivo de publicaciones
🤔 Чем отличается выброс исключения от "аборта"?
Исключение позволяет обработать ошибку и продолжить выполнение программы. Абортивное завершение (abort) немедленно завершает процесс без возможности восстановления.
Ставь 👍 если знал ответ, 🔥 если нет
🎥 Вебинар по C++: Магия чисел в C++: как заставить компилятор считать за нас
Программа ещё не запущена, а таблица значений уже готова. C++ позволяет выполнить часть вычислений на этапе компиляции и передать программе готовый результат.
👉 На уроке разберём:
- Как выполнять вычисления на этапе компиляции.
- Как получать числа Фибоначчи и факториал до запуска программы.
- Как поручить компилятору генерацию таблиц.
🤓 Что получите по итогам:
- Поймёте, как компилятор может вычислять результаты ещё при сборке программы.
- Разберёте этот принцип на конкретных задачах: от факториала и чисел Фибоначчи до генерации таблиц.
🧠 Вебинар приурочен к старту курса «C++-разработчик. Продвинутый уровень», который помогает системно усилить навыки: от современных стандартов C++20 и C++23 до проектирования, многопоточности, работы с сетью, базами данных и большими объёмами информации.
👉 Для участия зарегистрируйтесь: https://vk.cc/d2V0dM
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🤔 Как работает map и unordered_map?
map использует структуру красно-черного дерева, поддерживая упорядоченность элементов, тогда как unordered_map применяет хеш-таблицу, распределяя элементы по бакетам на основе их хеша.
Ставь 👍 если знал ответ, 🔥 если нет
🎥 Вебинар по C++: Паттерн многопоточного программирования «Producer-Consumer»
Когда несколько потоков одновременно работают с данными, недостаточно просто «запустить работу параллельно». Нужно правильно организовать передачу задач между потоками, не потерять данные и избежать ситуаций, когда приложение внезапно зависает.
👉 Разберём один из самых распространённых паттернов многопоточной разработки - Producer-Consumer. На практическом примере посмотрим, как один или несколько потоков создают задачи, другие их обрабатывают и какую роль между ними играет общая очередь.
Отдельное внимание уделим проблемам, с которыми разработчики сталкиваются на практике: гонкам данных, зависаниям, неправильной синхронизации и ситуации, когда задачи поступают быстрее, чем успевают обрабатываться.
🤓 План вебинара:
- Producer-Consumer: какую задачу решает паттерн
- Собираем Producer-Consumer на C++
- Почему многопоточный код «иногда работает, а иногда нет»
- Что делать, если Producer работает быстрее Consumer
- Разбор итоговой реализации и вопросы
🧠 Вебинар приурочен к старту курса «C++-разработчик. Продвинутый уровень», который помогает системно усилить навыки: от современных стандартов C++20 и C++23 до проектирования, многопоточности, работы с сетью, базами данных и большими объёмами информации.
👉 Для участия зарегистрируйтесь: https://vk.cc/d20AAu
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Что выведет следующий код и почему?
#include <iostream>
void foo(int a) { std::cout << "int"; }
void foo(char a) { std::cout << "char"; }
int main() {
foo(97);
return 0;
}
Ответ:
int
Почему?
Число 97 по умолчанию имеет тип int, поэтому вызывается версия foo(int).
Если бы мы передали 'a' (символьный литерал), то вызвалась бы foo(char).
⚡️ Подвох: Если бы параметр был unsigned char, то могла бы произойти неявная конверсия, но тут всё однозначно! 😊Бросаем число
#новичкам
Мы привыкли, что исключения имеют какую-то свою иерархию и каждый класс имеет свое конкретное назначение в контексте отображения ошибки.
А что если мы попытаемся бросить что-то совсем несвязанное с иcключениями? Например, какой-нибудь тривиальный тип вроде int. Это вообще законно?
Абсолютно законно. В С++ можно бросать все, что угодно, кроме объектов неполных типов, абстрактных классов и указателей на неполный тип. Даже указатель на void можно.
Как и число.
Поймать число примерно также просто, как его бросить:
void foo() {
throw 1;
}
int main() {
try {
foo();
}
catch(int i) {
std::cout << i << std::endl;
}
}
// OUTPUT: 1
Это кстати один из любимых вопросов у интервьюеров.
"А можно ли кидать число вместо исключения?"
Теперь вы с полной уверенностью ответите "можно".
Но вот зачем это может быть нужно? Оставьте ваши мысли в комментариях
Make sense. Stay cool.
#interview #cppcore😭 Путеводитель C++ ПРОГРАММИСТА ПО НЕОПРЕДЕЛЕННОМУ ПОВЕДЕНИЮ падает в твою коллекцию
«Преждевременная оптимизация — корень всех зол» (Д. Кнут или Э. Хоар — в зависимости от того, какой источник смотрите)Плюсы, пожалуй, наиболее яркая тому демонстрация: огромное количество ошибок в C++ коде связаны с неопределенным поведением, заложенным в фундаменте языка просто для того, чтобы дать простор оптимизациям на этапе компиляции. Если ты собираешься писать на C++ код, в работоспособности которого хочешь быть хоть немного уверенным, стоит знать о существовании различных подводных камней и ловко расставленных мин в стандарте языка, его библиотеке, и всячески их избегать. 👉 В книге Дмитрий Свиридкин собрал множество самых разных примеров, как в коде на C и C++ можно наткнуться на неопределенное, неожиданное и совершенно ошибочное поведение
👩💻 Удаление элементов из контейнеров с помощью методов erase() и clear()
•
erase() — удаляет один элемента или диапазон элементов из контейнера, такого как std::vector, std::set, и т.д.
• clear() — удаляет все элементы из контейнера, оставляя его пустым. После вызова clear() размер контейнера становится равным нулю.
🔥 — если узнал новое
🤝 — если уже пользовался
📣 Уютное сообщество С++ разработчиков | #ресурс🤔 Чем отличается выброс исключения от "аборта"?
Исключение позволяет обработать ошибку и продолжить выполнение программы. Абортивное завершение (abort) немедленно завершает процесс без возможности восстановления.
Ставь 👍 если знал ответ, 🔥 если нет
Modern C++ for Absolute Beginners
Автор: Slobodan Dmitrović
Год издания: 2023
#cpp #en
Скачать книгу
Основы разработки программ на языке C++
Автор: Станислав Беляков
Год издания: 2020
#cpp #ru
Скачать книгу
Объектно-ориентированное программирование
в C++
Автор: Роберт Лафоре
Год издания: 2021
#cpp #ru
Скачать книгу
C++ для профи
Автор: Джош Лоспинозо
Год издания: 2021
#cpp #ru
Скачать книгу
Реализация полезных алгоритмов на C++
Автор: Дмитро Кедик
Год издания: 2024
#cpp #ru
Скачать книгу
Разработка приложений на C++
Автор: Антон Полухин
Год издания: 2020
#cpp #ru
Скачать книгу
Идиомы и паттерны проектирования
в современном С++
Автор: Федор Г. Пикус
Год издания: 2020
#cpp #ru
Скачать книгу
Эксперт C++
Автор: Антонио Гуэрра Ханн
Год издания: 2023
#cpp #ru
Скачать книгу
