Telegram Web
🚫 Антипаттерн недели: Применение malloc() вместо new

В C++ функция malloc() не вызывает конструктор объекта, что может привести к неправильной инициализации данных. Использование new является более предпочтительным, так как оно корректно создает объект.

✔️ При работе с объектами используйте new вместо malloc().

👩‍💻
@quizcpp
👍1
⚙️ std::destroy_at()

std::destroy_at() (C++17) позволяет вручную вызвать деструктор объекта, не освобождая при этом память. Это удобно при использовании нестандартных аллокаторов или при ручном управлении памятью.

👩‍💻
@quizcpp
🔥1
⚙️ std::addressof()

std::addressof() помогает получить реальный адрес объекта, даже если оператор & был изменен. Это особенно полезно при использовании умных указателей и измененных операций.

👩‍💻
@quizcpp
👍1
Обучающий канал по Java
@Java
@quizcpp
🎉1
➡️ Библиотека SQLiteCpp

SQLiteCpp — это легкая обертка для SQLite, одной из самых популярных легковесных реляционных баз данных. Она предлагает удобный и безопасный интерфейс для работы с SQLite в C++, что упрощает взаимодействие с базами данных.

• Если вам нужно встроить простую, но мощную базу данных в ваше C++ приложение, SQLiteCpp — это то, что вам нужно.

🔗 Ссылка на документацию (https://github.com/SRombauts/SQLiteCpp)

👩‍💻
@quizcpp
👍2🔥2
👀 Отслеживание использования памяти с помощью mallinfo2()

В C++ можно контролировать объем памяти, выделенной через malloc(), с использованием mallinfo2(). Это помогает в выявлении утечек памяти и анализе динамического распределения памяти.

✔️ Применение mallinfo2() дает возможность получить данные о текущем использовании кучи.

👩‍💻
@quizcpp
👀 Измерение времени выполнения кода с использованием std::chrono::high_resolution_clock

В C++ существует возможность измерять время выполнения кода с высокой точностью благодаря std::chrono::high_resolution_clock. Это особенно полезно для профилирования и повышения производительности.

✔️ Применение std::chrono::high_resolution_clock::now() позволяет фиксировать время выполнения кода в наносекундах.

👩‍💻
@quizcpp
⚙️ std::has_single_bit()

std::has_single_bit() (C++20) определяет, является ли число степенью двойки, то есть имеет ли оно только один установленный бит. Это может быть полезно при работе с битовыми масками и для оптимизации алгоритмов.

👩‍💻
@quizcpp
⚙️ std::has_single_bit()

std::has_single_bit() (C++20) определяет, является ли число степенью двойки, то есть содержит ли оно только один установленный бит. Это может быть полезно при работе с битовыми масками и для оптимизации алгоритмов.

👩‍💻
@quizcpp
👍1
⚙️ std::experimental::fundamentals_v2::scope_guard

std::experimental::scope_guard (C++23) гарантирует выполнение кода при выходе из области видимости, что полезно для управления ресурсами и предотвращения утечек.

👩‍💻
@quizcpp
⚙️ std::bit_ceil()

std::bit_ceil() (C++20) находит ближайшую степень двойки, которая не меньше указанного числа. Это полезно при работе с битовыми масками и для оптимизации контейнеров.

👩‍💻
@quizcpp
🚫 Применение using namespace std; в глобальной области видимости

В C++ использование using namespace std; в глобальной области может вызвать конфликты имён, особенно в больших проектах.

✔️ Явно указывайте необходимые пространства имён или применяйте using внутри функций.

👩‍💻
@quizcpp
⚙️ std::valarray

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

👩‍💻
@quizcpp
⚙️ std::indirectly_readable_traits

std::indirectly_readable_traits (C++20) применяется внутри концептов и обобщённых алгоритмов для определения типа значения, на которое "указывает" итератор или указатель. Это полезно при создании обобщённых алгоритмов и своих концептов.

👩‍💻
@quizcpp
⚙️ std::unreachable_sentinel

std::unreachable_sentinel (C++20) представляет собой специальный итератор, который обозначает конец, который никогда не будет достигнут. Это удобно в алгоритмах, где конец не известен заранее, например, при чтении данных из потока до возникновения ошибки или окончания файла.

👩‍💻
@quizcpp
⚙️ std::to_underlying()

std::to_underlying() (C++23) позволяет безопасно преобразовать значение перечисления класса в его базовый целочисленный тип. Это удобно для сериализации, логирования и битовых операций с сильно типизированными перечислениями.

👩‍💻
@quizcpp
👍1
⚙️ std::ranges::slide()

std::ranges::slide() (C++23) создает представление с наложенными поддиапазонами фиксированной длины. Это полезно для анализа скользящих окон, например, при работе с временными рядами или потоками данных.

👩‍💻
@quizcpp
2025/07/11 23:24:54
Back to Top
HTML Embed Code: