Премиум каналы

Senior C++ Developer

Изучаем C++.

Последние публикации с канала

std::consume

std::consume — это функция, предназначенная для потребления значения из атомарной переменной. Она гарантирует, что все изменения, сделанные в атомарной переменной до вызова std::consume, будут видны в потоке, который ее вызывает.

Синтаксис:

void std::consume(std::atomic<T>& var);


#для_продвинутых

16.04.2024 / 18:04

Считаешь себя экспертом в IT? Участвуй в «Цифровом марафоне» от Сбера и «Школы 21» и будь на код впереди! Миллион рублей уже ждёт тебя.

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

Но сначала нужно пройти онлайн-игру, тестирование и цифровой диктант. Начнёшь с «разминки» и покажешь свои аналитические и мягкие навыки. Далее — ответь на вопросы теста согласно своему уровню подготовки. Прослушай на диктанте техническое задание и напиши код решения.

Поспеши: 20 апреля — твой последний шанс нажать на кнопку «Хочу участвовать». Переходи на сайт и регистрируйся прямо сейчас!

16.04.2024 / 15:04

Функция std::stold

Функция std::stold из стандартной библиотеки C++ преобразует строку, представляющую десятичное число с плавающей запятой, в тип long double.

Возвращаемое значение:
Возвращает значение типа long double, полученное из преобразованной строки.

#для_начинающих

16.04.2024 / 14:04

Корутины C++ для чайников: пишем асинхронный веб-клиент

Смотреть статью

Хабр
Корутины C++ для чайников: пишем асинхронный веб-клиент

Написать этот материал меня побудило... отсутствие хороших статей по корутинам в C++ в русскоязычном интернете, как бы странно это не звучало. Ну серьезно,...

15.04.2024 / 17:04

🦾 Освойте основы разработки нативных приложений под ОС Аврора 5

🎙 Ждём вас на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:

- познакомитесь с российской мобильной операционной системой Аврора, её устройством и основными характеристиками;
- посмотрите на структуру и конфигурацию нативного приложения для Аврора 5.0;
- обсудите основные этапы его сборки и запуска;
- разберете приложение, отправляющее уведомление в графическую подсистему Lipstick через DBus.

Встречаемся 17 апреля в 20:00 мск в рамках курса «Разработка прикладного ПО на Qt и ОС Аврора». Доступна рассрочка на обучение!

👉   Зарегистрируйтесь, чтобы посетить бесплатный урок и получить запись: https://otus.pw/fS3w/  

15.04.2024 / 14:04

Могут ли статические функции быть виртуальными в C++?

В C++ статическая функция-член класса не может быть виртуальной.

Кроме того, статические функции-члены класса не могут быть const и volatile.

В примере кода приведены две функции, обе из которых не дадут программе скомпилироваться.

15.04.2024 / 13:04

Функция minmax_element

Находит самый маленький и самый большой элемент в диапазоне [first, last).

14.04.2024 / 18:04

Пример UB (Undefined behavior)

Ярким примером UB и ошибочного кода является повторное использование (в том числе повторное изменение) изменяемой переменной при вычислении выражения, когда относительный порядок вычисления термов не определен (то же касается фактических параметров функции в точке вызова).

13.04.2024 / 16:04

Введение в обработку исключений

Одним из преимуществ C++ перед C является обработка исключений. Исключения - это ненормальные условия, с которыми программа сталкивается во время своего выполнения.

Есть два типа исключений: а) синхронные, б) асинхронные (например, которые находятся вне контроля программы, сбой диска и т. д.). Для этой цели C++ предоставляет следующие специализированные ключевые слова.

try: представляет блок кода, который может вызвать исключение.
catch: представляет блок кода, который выполнится при возникновении определенного исключения.
throw: используется для создания исключения. Также используется для перечисления исключений, которые генерирует функция, но не обрабатывает себя.

12.04.2024 / 18:04

Введение в UB

В языке C++ важную роль играют понятия неопределенное поведение undefined behavior, UB и определяемое реализацией поведение implementation-defined behavior, IB, характеризующие действия, результаты которых не определяются стандартом языка.

Когда некоторое действие объявляется как порождающее UB, это означает, что программист не должен полагаться на какой-то определенный результат — всё зависит от выбора компилятора в данном конкретном случае и особенностей платформы, причём разработчики платформы и компилятора не обязаны указывать в документации последствия такого действия. В случае IB, разработчик компилятора должен выбрать некоторую, разумную с его точки зрения, реализацию и описать это в документации.

Например, компилятор g++ известен тем, что при определённых условиях просто выбрасывает из программы участки, зависящие от неопределённого поведения.

К сожалению, программа, опирающаяся на конкретное поведение на данной платформе с данным компилятором, строго говоря, не является переносимой. Часто использование конструкций, эффект которых заявлен как IB или UB, является неосознанным из-за невнимательности, недостатка опыта или знаний программиста. Если, например, поведение программы различается в отладочной (debug, оптимизация машинного кода компилятором выключена) и окончательной (release, оптимизация включена) сборках, то, скорее всего, виноват код, порождающий UB.

11.04.2024 / 12:04

Общие хитрости для C++

Никогда не используйте INT_MAX в качестве бесконечности для целых чисел. В некоторых алгоритмах, например, Флойда–Уоршелла, используются значения вроде ∞+w, что приведёт к переполнению при использовании INT_MAX. Вместо этого лучше использовать int oo = 0x3f3f3f3f, поскольку:
• Это число достаточно большое для задач, связанных с целыми числами;
• 2 * oo не приведёт к переполнению;
• Все байты равны, поэтому вы без проблем можете использовать memset(array, oo, sizeof(array));
• Его довольно легко запомнить.

Однако будьте осторожны: не используйте 0x3f3f3f3f для long long, так как в таком случае фокус уже не пройдёт, и вы потом потратите кучу времени на поиск ошибки.

09.04.2024 / 18:04

Ждём тебя на OneDayOffer 20 апреля — где ты можешь получить предложение о работе от SberAutoTech. Присоединяйся к проекту по разработке технологии автономного вождения и строй будущее беспилотного транспорта с нами.

Мы ищем талантливых системных аналитиков и С++ разработчиков, готовых к вызовам! Пройди все этапы собеседования за один день и получи предложение о работе.

Заполни форму, выполни тестовое задание и получи приглашение на онлайн-мероприятие.

Твоя карьера может измениться уже сегодня! Узнай больше по ссылке.

09.04.2024 / 13:04

Библиотечный метод

Продемонстрируйте работу метода сортировки вставками по возрастанию. Для этого выведите состояние данного массива после каждой вставки на отдельных строках. Если массив упорядочен изначально, не нужно ничего выводить.

Формат входных данных:
На первой строке дано целое число n (1 ≤ n ≤ 100) – количество элементов в массиве. На второй строке задан сам массив: последовательность натуральных чисел, не превышающих 10^9.

Формат выходных данных:
В выходной файл выведите строки (по количеству вставок) по n чисел каждая.

08.04.2024 / 21:04

🙀 Важные новости от «Лаборатории Касперского»

Открывается оплачиваемая стажировка SafeBoard по направлению Разработка С++. Если ты учишься в вузе в Москве/МО или Школе 21 на любом курсе, кроме выпускного и готов(а) работать от 20 часов в неделю — запрыгивай в команды и приземляйся сразу на четыре лапы в IT.

Тебя ждут разнообразные интересные задачи, из которых ты можешь выбрать то, в чем хочешь развиваться дальше. Ты сможешь научиться:

— Писать техничный код C++;
— Разрабатывать приложения и готовые продукты;
— Разрабатывать и поддерживать кросс-платформенные (win, unix) проекты C++;
— Выполнять рефакторинг кода;
— Разбираться в чужом коде;
— Развивать техническую экспертизу и многому другому.

Во время стажировки ты будешь получать зарплату, бесплатно пользоваться спортзалом, сауной и игровыми комнатами 😉

Подай заявку до 25 апреля: https:safeboard🐾

08.04.2024 / 15:04

Код по случайной перестановке цифр в строке с помощью С++

08.04.2024 / 14:04

Реализация утилиты cat на C

Программисты часто используют встроенные команды unix для решения задач. Давайте реализуем cat. cat - утилита которая объединяет файлы и выводит их в стандартный вывод.

Смотреть статью

06.04.2024 / 17:04

I like techno — подкаст о технологиях в сервисах Яндекса

Запустили подкаст, где специалисты Яндекса говорят о том, как устроены простые приложения в наших гаджетах.
Первый эпизод посвящен технологиям Фудтеха — узнайте, как алгоритмы Еды и Лавки помогают доставлять продукты пользователям, несмотря на погодные условия и другие неопределенности.

Слушать на Яндекс Музыке
Смотреть на Youtube

06.04.2024 / 14:04

Узнаем версию C++

Можно использовать макрос __cplusplus для определения версии C++. Например, если препроцессор увидит значение __cplusplus, равное 199711L, это означает, что используется C++98; значение 201103L указывает на C++11 и так далее.

06.04.2024 / 14:04

Когда команда программистов работает над разными частями проекта, могут возникнуть проблемы при объединении веток кода в одну, или даже их потеря. Для того, чтобы следить за изменениями и избегать ошибок, профессионалы работают с Git — системой контроля версий кода.

На бесплатном курсе «Основы работы с Git» вы узнаете:

— зачем нужны сервисы контроля версий кода и что они умеют;
— основные команды для работы в Git;
— как работать с командным репозиторием через IDE и консоль;
— принципы работы популярных сервисов (GitHub, Terminal, GitBash и пр.);
— основы командной разработки.

Пройдите курс Яндекс Практикума «Основы работы с Git», чтобы сделать процесс написания кода комфортнее и улучшить навыки командного взаимодействия.

Пройти бесплатный курс

06.04.2024 / 11:04

Генерируем X509 сертификат с OpenSSL C++

В данной статья автор рассказывает, как работать с X509 сертификатом используя OpenSSL 3.0.0 в С++, начиная от генерации своего сертификата и заканчивая его валидацией.

Смотреть статью

06.04.2024 / 08:04
Отзывы: - 0
Поделитесь вашим мнением! Оставьте отзыв:

Похожие

Избранное