Блог C++ → Полезные материалы по С++ | OTUS
⚡ Открываем подписку на курсы!
Проходите параллельно 3 онлайн-курса в месяц по цене одного.
Подробнее

Курсы

Программирование
Flutter Mobile Developer Подготовка к сертификации Oracle Java Programmer (OCAJP)
-8%
Супер-интенсив «СУБД в высоконагруженных системах»
-18%
Алгоритмы и структуры данных
-12%
Web-разработчик на Python
-11%
Архитектура и шаблоны проектирования
-14%
Team Lead
-15%
iOS-разработчик. Базовый курс
-23%
Разработчик на Spring Framework Python Developer. Basic
-16%
C# ASP.NET Core разработчик
-18%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
Android-разработчик. Базовый курс
-10%
C++ Developer. Professional Разработчик C# AWS для разработчиков Software Architect Unity Game Developer. Basic Разработчик голосовых ассистентов и чат-ботов Backend-разработка на Kotlin React.js Developer Разработчик Node.js Нереляционные базы данных Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Advanced Fullstack JavaScript developer
Инфраструктура
Супер-интенсив «СУБД в высоконагруженных системах»
-18%
PostgreSQL
-10%
IoT-разработчик
-12%
Administrator Linux. Professional
-11%
Базы данных
-19%
Administrator Linux.Basic
-18%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
Сетевой инженер AWS для разработчиков Software Architect Reverse-Engineering. Professional CI/CD VOIP инженер Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02
Move-семантика в C++

Move-семантика даёт возможность перемещать объект, а не копировать его, что увеличивает производительность. Давайте посмотрим, как работает семантика на примере, в котором будем использовать класс String:

Оптимизация C++: строки или перечислимый тип?

Иногда в качестве входных данных разрешается применение фиксированного набора строк. Далее они хранятся и используются. Однако эти строки желательно конвертировать в перечислимый тип — это будет наилучшим вариантом. Почему? Давайте рассмотрим преимущества.

Зачем нужны указатели в C++?

Как правило, многие программисты понимают разницу между объектами и указателями на объекты. Тем не менее не всегда ясно, в пользу какого из вышеперечисленных способов обращения делать выбор. Попробуем ответить на этот вопрос.

Инициализация статических переменных в С++. Неоднозначности и возможные решения

otus_Posts_25may_VK_1000x700_2-20219-86ca43.jpg

Занимаясь разработкой на языке С++, мы рано или поздно приходим к вопросу об инициализации статических переменных. Более сложный случай, когда проект большой и над ним трудится много людей. Статические переменные, как правило, объявляются в глобальной области имён, то есть используются многими участниками проекта, что часто вызывает споры и раздоры.

Браузерный интерфейс GDB для C++

Cplus_Deep_10.3-5020-5d5c5a.png

Предлагаем вашему вниманию краткий обзор инструмента gdbgui. Это современный браузерный GDB (GNU-отладчик), предназначенный для языков программирования C, C++, Rust и Golang. С его помощью вы сможете просматривать трассировку стека, добавлять контрольные точки и многое другое.

Умный указатель в C++

Cplus_Deep_13.1-5020-d3bffc.png

Умный указатель в C++ (его ещё называют интеллектуальным) обеспечивает безопасность за счёт автоматического управления памятью. Такое решение позволит избежать ряда проблем при написании кода (отказов в выделении памяти, «утечек» памяти и пр.)

Фреймворки для юнит-тестов C++

Cplus_Deep_27.8-5020-6b82cc.png

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

Списки в C++. Односвязный список

Cplus_deep_22.8-5020-3781cf.png

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