C++ Эволюция
2.72K subscribers
296 photos
2 videos
106 links
Обучающий канал по C++
Download Telegram
🔴 Как разработчику на С++ организовать кроссплатформенную разработку?

Приходите на практический открытый урок от OTUS, где вы:

- узнаете, как решить проблему поиска зависимостей;
- напишите conan-файл;
- сможете организовать свой сервер пакетов в своей экосистеме CI/CD;
- получите ответы на все возникающие вопросы.

👨‍🎓Спикер — тимлид команды в отделе рекламных технологий и социальных механик в одном из крупнейших российских банков.

Встречаемся 24 июня в 20:00 мск в преддверии старта курса «C++ Developer. Professional». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!

Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: РЕГИСТРАЦИЯ

Ре
клама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
➡️ Умное управление компиляцией в C++

Современные стандарты C++ предоставляют множество возможностей для оптимизации кода на этапе компиляции.

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

C++ Learning 👩‍💻
➡️ Оптимизация ресурсоёмких задач: Использование умных указателей с кастомным deleter в C++

Умные указатели, представленные в C++11, значительно упростили управление памятью и ресурсами, исключив необходимость явного освобождения ресурсов.

Однако в некоторых случаях стандартного поведения умных указателей недостаточно. Использование кастомного deleter позволяет расширить функциональность умных указателей для более сложных сценариев.

Умные указатели с кастомным deleter обеспечивают автоматическое и безопасное освобождение ресурсов, таких как файлы, сокеты или другие системные ресурсы.

Использование кастомного deleter позволяет избежать утечек ресурсов и улучшает надежность программы.

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

C++ Learning 👩‍💻
➡️ Мощь метапрограммирования: Использование шаблонных переменных

Шаблоны в C++ уже давно используются для создания универсального кода. Однако с появлением C++17 было введено новое и мощное средство - шаблонные переменные, которые позволяют создавать переменные на основе шаблонов.

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

C++ Learning 👩‍💻
🚙Мониторинг движения транспорта в IoT служит для всестороннего мониторинга всех участников дорожного движения, включая отслеживание скорости, траекторий, выхода пешеходов на дорогу и всего, что может в конечном итоге повлиять на поток и безопасность дорожного движения.

👉Узнайте больше на бесплатном вебинаре онлайн-курса «IoT Developer» - «Мониторинг транспорта в платформе ThingsBoard»: регистрация

На занятии рассмотрим решение мониторинга транспорта, познакомимся с реализацией демо проекта на платформе ThingsBoard:
1. Подключение устройств
2. Создание сущностей
3. Разработка цепочек правил
4. Разработка дашборда

🤝Понравится урок — продолжите обучение на курсе по спеццене и даже в рассрочку!

erid: LjN8KRTvd
➡️ Расширение возможностей с помощью итераторов-адаптеров

Итераторы-адаптеры - это классы, которые оборачивают стандартные итераторы и предоставляют дополнительные возможности или изменяют их поведение.

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

C++ Learning 👩‍💻
Программы бакалавриата в Центральном университете от лидеров ИТ-индустрии в стране!

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

Помимо диплома гособразца и практико-ориентированного образования, студенты получат:

• Знания и навыки, с которыми не придется переучиваться на работе;
• Оплачиваемую стажировку в одной из компаний-партнеров;
• Личного ментора из индустрии;
• Современный кампус в Москве и сильное комьюнити.

Подать документы для поступления можно с 20 июня.
Параллельно участвуйте в конкурсе грантов, который может покрыть до 100% стоимости обучения.

Подробнее о грантах и университете читайте (Зашить ссылку https://apply.centraluniversity.ru/?utm_source=telegram&utm_medium=ntv.fix&utm_campaign=centraluniversity.grants.june&utm_term=Learning_pluses
erid:2VtzquvQTWF
Реклама, АНО ВО «Це...
➡️ Наследование с помощью private и public

Использование private и public при наследовании в C++ позволяет контролировать доступ к членам базового класса в производных классах.

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

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

C++ Learning 👩‍💻
➡️ Строго типизированные перечисления

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

C++ Learning 👩‍💻
📚 Здесь собраны все вопросы, которые могут спросить на собеседовании. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам. Просто выбери своё направление:

1. Frontend / JavaScript
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. С/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
➡️ Как включить все стандартные библиотеки одной командой

Чтобы разом включить в проект все стандартные библиотеки, используйте #include <bits/stdc++.h>. Это особенно полезно в условиях дефицита времени на соревнованиях по программированию.

Например, вы можете заменить этот фрагмент (и многие другие):

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <stack>
#include <set>
#include <queue>
#include <map>


Простой строкой:

#include <bits/stdc++.h>


C++ Learning 👩‍💻
Внимание, разработчики! Приглашаем вас на открытый вебинар по алгоритмам и структурам данных от опытного практикующего эксперта💯

Ждём вас на уроке «Визуальное сравнение 1-2-3 алгоритмов сортировок» от OTUS, где мы:
- подробно рассмотрим три алгоритма сортировок: Пузырьком, Вставкой и Шелла;
- сравним их по различным критериям: сложность и количество обменов, стабильность и адаптивность;
- напишем алгоритмы и сравним их быстродействие;
- продемонстрируем их работу на игральных картах🂱️

🔥 Спикер Евгений Волосатов — программист баз данных и преподаватель с огромным и разнообразным опытом, автор статей и учебных программ по C#, Java, PHP.

Встречаемся 1 июля в 20:00 мск в преддверии старта курса «Алгоритмы и структуры данных». Все участники вебинара получат специальную цену на обучение.

🔴 Ссылка для регистрации: https://clck.ru/3BVZK9

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
➡️ Улучшение многопоточности с использованием std::shared_mutex и std::shared_lock

Использование std::shared_mutex и std::shared_lock позволяет эффективно управлять многопоточным доступом к ресурсам, повышая производительность за счет одновременного чтения и блокирования только при записи.

Это особенно полезно для сценариев, где чтение данных происходит чаще, чем запись.

C++ Learning 👩‍💻
🎯 Вперед к улучшенной организации кода с машиной состояний в Qt!

4 июля в 20:00 мск — откройте для себя мир работы с Qt на открытом практическом вебинаре.

На уроке вы освоите:

- основы работы с машиной состояний в Qt: создание состояний, определение переходов и управление сигналами;
- сложные логические условия для эффективных переходов и повышения производительности приложения;
- использование машины состояний для улучшения организации кода и создания более совершенного приложения.

Кому подходит урок:

- программистам, использующим Qt и стремящимся к оптимизации своего кода;
- любознательным разработчикам, желающим погрузиться в мир машин состояний и их применения.

Спикер — ведущий разработчик в одной из крупнейших компаний и опытный преподаватель.

Встречаемся в преддверии старта курса «Разработка прикладного ПО на Qt и ОС «Аврора». Все участники вебинара получат специальную цену на обучение!

➡️ Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок: https://clck.ru/3BVose

Реклама....
➡️ Оптимизация Производительности с Помощью std::any

std::any в C++17 предоставляет мощный и гибкий инструмент для хранения и управления значениями любого типа. Он упрощает работу с разнородными данными, улучшает читаемость кода и повышает безопасность за счет проверки типов во время выполнения.

Гибкость: Позволяет хранить значения любых типов без необходимости создания общих базовых классов или использования void*.
Безопасность: std::any обеспечивает безопасное извлечение значения с проверкой типов с помощью std::any_cast.
Читаемость: Улучшает читаемость и поддерживаемость кода за счет отказа от низкоуровневых трюков.

C++ Learning 👩‍💻
➡️ Упрощение работы с асинхронными задачами с помощью C++20 coroutines

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

Корутина simpleCoroutine: Функция simpleCoroutine является корутиной, что обозначается использованием co_return для завершения ее выполнения. Она выводит сообщение на экран и завершает свою работу.

C++ Learning 👩‍💻
Устроиться аналитиком в Яндекс за выходные

6–9 июля проводим Weekend Offer Analytics. До 3 июля оставьте заявку на участие, 6–8 июля пройдите технические собеседования, а 9 июля познакомьтесь с командами и получите офер.

В мероприятии участвует 9 команд: Crowd, Карты, Поиск, Алиса, R&D, Автономный транспорт, Подразделение аналитики, Антифрод, Антиробот. Вы сможете пообщаться с менеджерами и выбрать проект, который покажется самым интересным.

Нанимаем в офисы России и Республики Беларусь.

Узнать подробности и зарегистрироваться можно здесь.
Разбираем как решать задачи на LeetCode

Примеры решений
Пояснения

Выбери своё направление:

1. JavaScript
2. Python
3. Java
4. C#
5. C/C++
6. Golang
7. PHP
8. Kotlin
9. Swift
➡️ Арифметика указателей

Использование указателей при написании кода чревато появлением огромного количества ошибок.

По этой причине программисты на С++ стараются их избегать. Альтернативой могут послужить числовые литералы.

C++ Learning 👩‍💻
➡️ Ассоциативность оператора массива

A[8] - это то же самое, что и *(A + 8). Так как операция сложения ассоциативна, она может быть переписана как *(8 + A), что синонимично ..... 8[A]

Никто не говорил, что это должно быть обязательно полезно

C++ Learning 👩‍💻
➡️ Арифметика указателей

Использование указателей при написании кода чревато появлением огромного количества ошибок.

По этой причине программисты на С++ стараются их избегать. Альтернативой могут послужить числовые литералы.

C++ Learning 👩‍💻