C++ Learning
Статистика№ 4974310652 Обучающий канал по C++ По всем вопросам @mascarov_valentin Реклама на бирже - https://telega.in/c/Learning_pluses
- Последний пост
- 13 авг.
- Последнее чтение
- 14:02
- Постов за неделю
- 2
- Всего постов
- 22
- Тип
- открытый
- Язык
- русский
- Категория
- Технологии (по похожим)
- В каталоге с
- 12 авг.
- 1/24сутки в ленте
- 625
- 1/48двое суток
- 716
- 1/72трое суток
- 772
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Онлайн-магистратура для C++-разработчиков На программе ИТМО в партнерстве с Яндекс Практикумом завершается прием в онлайн-магистратуру «Фронтенд-, бэкенд-разработка и ИИ-решения». Внутри – девять треков, в том числе продвинутый C++ с Boost, асинхронный бэкенд, высоконагруженные системы и ИИ-разработка. Учиться можно по вечерам, совмещая магистратуру с работой (так уже делают 82% студентов). За два года можно собрать 10+ практических кейсов, а на выходе будет диплом магистра ИТМО и диплом о профпереподготовке от Яндекса. Подробнее о программе и поступлении
➡️ auto & decltype • auto-типизированные переменные выводятся компилятором на основе типа их инициализатора. • Чрезвычайно полезно с точки зрения удобочитаемости, особенно для сложных типов: // std::vector<int>::const_iterator cit = v.cbegin(); auto cit = v.cbegin(); // альтернатива // std::shared_ptr<vector<uint32_t>> demo_ptr(new vector<uint32_t>(0); auto demo_ptr = make_shared<vector<uint32_t>>(0); // альтернатива • Функции также могут выводить тип возвращаемого значения с помощью auto. В C++11 тип возвращаемого значения должен быть указан либо явно, либо с помощью decltype, например: template <typename X, typename Y> auto add(X x, Y y) -> decltype(x + y) { return x + y; } add(1, 2); // == 3 add(1, 2.0); // == 3.0 add(1.5, 1.5); // == 3.0 • Приведенная выше форма определения возвращаемого типа называется trailing return type, т.е. -> return-type. C++ Learning 👩💻
⚙️ std::iota std::iota — алгоритм из библиотеки <numeric>, который заполняет диапазон значениями, начиная с указанного стартового числа, увеличивая его на 1 для каждого следующего элемента. Это полезно для генерации простых последовательностей чисел, индексов, номеров строк, тестовых данных без ручных циклов. C++ Learning 👩💻
🔥 Три разных человека. Три разных проекта. Один и тот же подход. — Юра взял «скучную» нишу с готовым спросом → сначала печальные $100/мес, через год уже ~$10K/мес — Денис сделал Telegram-игру в одиночку на основе AI → ~ $1500 за 1,5 месяца после запуска — Аня без кода запустила AI-бота для изучения английского → первые ~$200 уже в 1 месяц Разные результаты. Разный масштаб. Но общие правила: 1. не придумывать «гениальную идею», а брать существующий спрос 2. делать простой MVP и быстро запускаться 3. докручивать монетизацию и продукт по факту использования Ребята сделали всё без команды, без инвестиций, а самое главное — без ожидания «идеального момента». Да, не у всех получается сразу. И не у всех выходит на $10K. Но если системно идти по схеме выше — появляется первый доход с продукта, а дальше уже есть что масштабировать. В комьюнити разбираем такие кейсы регулярно: @its_capitan. Что сработало, что нет, и почему. Реклама: ИП Зуев Игорь Владимирович, ИНН: 360408359441, Erid: 2VtzqxWHCtS
⚙️ std::lcm std::lcm вычисляет наименьшее общее кратное (НОК) двух чисел. Это полезно для задач на синхронизацию событий, работы с дробями и математических расчётов. C++ Learning 👩💻
⚙️ std::gcd std::gcd вычисляет наибольший общий делитель (НОД) двух чисел. Это полезно для задач на делимость, сокращения дробей и численных алгоритмов. C++ Learning 👩💻
Недавние математические интриги вокруг OpenAI снова подняли вопрос: ИИ действительно решает сложные задачи или просто находит готовые доказательства в уже существующих текстах? В любом случае без математики тут никуда: алгоритмы, логика, доказательства, проверка гипотез — всё это база сильного разработчика. В канале «Зачем мне эта математика?» такие истории разбирают понятно: от задач Эрдёша до ML и графов. Подписывайтесь!
⚙️ std::exchange std::exchange заменяет значение переменной на новое и возвращает старое. Это полезно для сброса состояния, перемещения значений и написания атомарных операций. C++ Learning 👩💻
⚙️ std::clamp std::clamp ограничивает значение в пределах заданного диапазона. Это полезно для валидации чисел, нормализации данных и защиты от выхода за границы. C++ Learning 👩💻
⚙️ std::launder std::launder (C++17) используется для безопасного доступа к объекту после его повторной инициализации в той же памяти с помощью placement new. Это важно при низкоуровневых операциях, связанных с ручным управлением жизненным циклом объектов. C++ Learning 👩💻
⚙️ std::unexpected std::unexpected (устаревший в C++17, но интересный исторически) используется для установки обработчика непредусмотренных исключений, выбрасываемых функциями с noexcept(false) или throw()-спецификацией. Полезно для отладки и контроля исключений в старом коде. C++ Learning 👩💻
⚙️ std::default_sentinel std::default_sentinel (C++20) представляет универсальный конец диапазона и используется с пользовательскими итераторами и ranges. Это полезно для создания "открытых" и ленивых представлений данных. C++ Learning 👩💻
⚙️ std::to_address() std::to_address() (C++20) извлекает обычный указатель из объекта-итератора или умного указателя. Это полезно для универсальной работы с памятью без зависимости от типа указателя. C++ Learning 👩💻
⚙️ std::uninitialized_default_construct_n std::uninitialized_default_construct_n (C++17) вызывает default-конструкторы объектов в необработанном блоке памяти без инициализации значений. Это полезно при ручном управлении памятью и написании аллокаторов или контейнеров. C++ Learning 👩💻
⚙️ std::bit_width() std::bit_width() (C++20) возвращает минимальное количество бит, необходимое для представления значения. Это полезно при работе с битовыми структурами, алгоритмами сжатия, хэшированием и оптимизацией памяти. C++ Learning 👩💻
⚙️ std::is_constant_evaluated() std::is_constant_evaluated() (C++20) позволяет определить, выполняется ли код в рамках constexpr-вычисления. Это полезно для написания функций, ведущих себя по-разному на этапе компиляции и выполнения. C++ Learning 👩💻
⚙️ std::stacktrace std::stacktrace (C++23) позволяет получить стек вызовов прямо во время выполнения. Это полезно для логирования, отладки, генерации crash-репортов и встроенных диагностик — прямо в продакшене. C++ Learning 👩💻
⚙️ std::move_only_function std::move_only_function (C++23) — это аналог std::function, но с поддержкой только перемещаемых (не копируемых) замыканий. Полезно для высокопроизводительных сценариев и перемещаемых лямбд с захваченными уникальными ресурсами (std::unique_ptr, сокеты и т.д.). C++ Learning 👩💻
⚙️ std::unordered_map::emplace_hint() std::unordered_map::emplace_hint() позволяет вставлять элементы в хеш-таблицу с подсказкой для оптимизации. Это особенно полезно, если известно, куда примерно должен встать новый элемент, ускоряя операцию вставки. 🔗 Документация C++ Learning 👩💻
⚙️ std::atomic_signal_fence() std::atomic_signal_fence() предотвращает оптимизацию порядка инструкций компилятором, но не влияет на процессорные барьеры. Это полезно при синхронизации между обычным кодом и обработчиками сигналов. C++ Learning 👩💻