C++ Эволюция
2.72K subscribers
296 photos
2 videos
106 links
Обучающий канал по C++
Download Telegram
Channel created
Функция std::exchange

Функция std::exchange в С++ используется для атомарного обмена значения переменной. Это означает, что замена значения происходит одновременно, без промежуточного состояния, в котором переменная может содержать неверное значение.

#для_продвинутых
💻Старт курса “Реверсивный инжиниринг ПО под ОС Windows” 

Начало обучения: 4 марта

🎓 За 6,5 месяцев вы:
- Подробно изучите команды языка Ассемблер
- Освоите техники поиска уязвимостей в десктопных приложениях
- Проведете детальный анализ уязвимостей разных приложений, от простейших crackme до полноценных приложений
- Изучите образцы вредоносных приложений и методы заражения машин

💡 Кому будет полезен курс:
- Пентестерам
- Вирусным аналитикам
- Исследователям кода вредоносного ПО
- Разработчикам ПО
- Всем интересующимся тематикой ВПО

🎓 Учитесь дистанционно, без отрыва от вашей профессиональной деятельности и получите сертификат по окончании курса

🚀 Запись на курс уже открыта – начните свой путь в мир реверс-инжиниринга с Академией Кодебай!
👩‍💻 Пройди тест по C++ и проверь свои знания.

Ответишь
— пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса.

На этом курсе ты:
✔️ Научишься прикладному применению стандартов C++11 / C++14 / C++17.
✔️ Освоишь асинхронное и многопоточное программирование.
✔️ Получишь глубокое представление о шаблонной магии и паттернах проектирования.

➡️ ПРОЙТИ ТЕСТ: https://clck.ru/38xJFe

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
#вопросы_с_собеседований
Что такое "идиома remove-erase"?

Идиома remove-erase — это распространенный прием работы с контейнерами, позволяющий эффективно удалять элементы, соответствующие некоторому условию.

Суть идиомы заключается в следующем:

1. С помощью алгоритма std::remove или std::remove_if элементы, подлежащие удалению, перемещаются в конец контейнера.
2. Затем с помощью метода erase удаляется диапазон элементов от нового конца контейнера до старого, содержащий элементы для удаления.
3. Такой подход позволяет избежать лишних копирований, так как при удалении с помощью erase порядок оставшихся элементов сохраняется.

Эта идиома часто используется для эффективного удаления элементов из вектора или других последовательных контейнеров.
🔧С чего начать изучение программирования микроконтроллеров?

С бесплатного практического урока от OTUS “Hello world - ведение в программирование микроконтроллеров”, где вы вместе с опытным экспертом:

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

🔥Встречаемся 26 февраля в 20:00 мск в рамках курса «Embedded Developer». 

👉Регистрация

При поступлении в группу обучения возможны разные способы оплаты и рассрочка платежа

erid: LjN8JykHR
#Вопросы_с_собеседования
Что будет, если забыть вызвать delete?



Если в программе забыть вызвать оператор delete при динамическом выделении памяти с помощью new, это приведет к утечке памяти.

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

Поэтому очень важно правильно выделять и освобождать память во избежание утечек. Лучше всего использовать умные указатели, которые автоматически вызывают delete, или контейнеры, управляющие памятью за программиста.
🔥 Время прокачивать свои навыки по безопасности и расти!

💥 Проверь себя – пройди тест по ИБ

Ответишь успешно — пройдешь на курс «Rust Developer. Professional» от OTUS по специальной цене со скидкой.

❗️На курсе ты научишься разворачивать Rust и среду разработки, создавать надёжное, отказоустойчивое и высокопроизводительное ПО, тестировать код.

Именно эти навыки дадут мощное конкурентное преимущество IT-специалистам и повысят твою востребованность и доход!

➡️ ПРОЙТИ ТЕСТ: https://clck.ru/38yRdP

💥 Пройдете тест и бонусом получишь:

– Доступ к записям лучших вебинаров курса
– Скидку на онлайн-курс «Rust Developer. Professional»

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
std::consume

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

Синтаксис:
void std::consume(std::atomic<T>& var);


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

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

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