👀 Измерение времени выполнения кода с использованием std::chrono::high_resolution_clock
В C++ существует возможность измерять время выполнения кода с высокой точностью благодаря std::chrono::high_resolution_clock. Это особенно полезно для профилирования и повышения производительности.
✔️ Применение std::chrono::high_resolution_clock::now() позволяет фиксировать время выполнения кода в наносекундах.
👩💻
@quizcpp
В 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() (C++20) определяет, является ли число степенью двойки, то есть имеет ли оно только один установленный бит. Это может быть полезно при работе с битовыми масками и для оптимизации алгоритмов.
👩💻
@quizcpp
⚙️ std::has_single_bit()
std::has_single_bit() (C++20) определяет, является ли число степенью двойки, то есть содержит ли оно только один установленный бит. Это может быть полезно при работе с битовыми масками и для оптимизации алгоритмов.
👩💻
@quizcpp
std::has_single_bit() (C++20) определяет, является ли число степенью двойки, то есть содержит ли оно только один установленный бит. Это может быть полезно при работе с битовыми масками и для оптимизации алгоритмов.
👩💻
@quizcpp
👍1
⚙️ std::experimental::fundamentals_v2::scope_guard
std::experimental::scope_guard (C++23) гарантирует выполнение кода при выходе из области видимости, что полезно для управления ресурсами и предотвращения утечек.
👩💻
@quizcpp
std::experimental::scope_guard (C++23) гарантирует выполнение кода при выходе из области видимости, что полезно для управления ресурсами и предотвращения утечек.
👩💻
@quizcpp
⚙️ std::bit_ceil()
std::bit_ceil() (C++20) находит ближайшую степень двойки, которая не меньше указанного числа. Это полезно при работе с битовыми масками и для оптимизации контейнеров.
👩💻
@quizcpp
std::bit_ceil() (C++20) находит ближайшую степень двойки, которая не меньше указанного числа. Это полезно при работе с битовыми масками и для оптимизации контейнеров.
👩💻
@quizcpp
🚫 Применение using namespace std; в глобальной области видимости
В C++ использование using namespace std; в глобальной области может вызвать конфликты имён, особенно в больших проектах.
✔️ Явно указывайте необходимые пространства имён или применяйте using внутри функций.
👩💻
@quizcpp
В C++ использование using namespace std; в глобальной области может вызвать конфликты имён, особенно в больших проектах.
✔️ Явно указывайте необходимые пространства имён или применяйте using внутри функций.
👩💻
@quizcpp
⚙️ std::valarray
std::valarray предназначен для эффективной работы с числовыми массивами и поддерживает векторные операции, что делает его полезным для научных расчетов и обработки данных.
👩💻
@quizcpp
std::valarray предназначен для эффективной работы с числовыми массивами и поддерживает векторные операции, что делает его полезным для научных расчетов и обработки данных.
👩💻
@quizcpp
⚙️ std::indirectly_readable_traits
std::indirectly_readable_traits (C++20) применяется внутри концептов и обобщённых алгоритмов для определения типа значения, на которое "указывает" итератор или указатель. Это полезно при создании обобщённых алгоритмов и своих концептов.
👩💻
@quizcpp
std::indirectly_readable_traits (C++20) применяется внутри концептов и обобщённых алгоритмов для определения типа значения, на которое "указывает" итератор или указатель. Это полезно при создании обобщённых алгоритмов и своих концептов.
👩💻
@quizcpp
⚙️ std::unreachable_sentinel
std::unreachable_sentinel (C++20) представляет собой специальный итератор, который обозначает конец, который никогда не будет достигнут. Это удобно в алгоритмах, где конец не известен заранее, например, при чтении данных из потока до возникновения ошибки или окончания файла.
👩💻
@quizcpp
std::unreachable_sentinel (C++20) представляет собой специальный итератор, который обозначает конец, который никогда не будет достигнут. Это удобно в алгоритмах, где конец не известен заранее, например, при чтении данных из потока до возникновения ошибки или окончания файла.
👩💻
@quizcpp
⚙️ std::to_underlying()
std::to_underlying() (C++23) позволяет безопасно преобразовать значение перечисления класса в его базовый целочисленный тип. Это удобно для сериализации, логирования и битовых операций с сильно типизированными перечислениями.
👩💻
@quizcpp
std::to_underlying() (C++23) позволяет безопасно преобразовать значение перечисления класса в его базовый целочисленный тип. Это удобно для сериализации, логирования и битовых операций с сильно типизированными перечислениями.
👩💻
@quizcpp
👍1
⚙️ std::ranges::slide()
std::ranges::slide() (C++23) создает представление с наложенными поддиапазонами фиксированной длины. Это полезно для анализа скользящих окон, например, при работе с временными рядами или потоками данных.
👩💻
@quizcpp
std::ranges::slide() (C++23) создает представление с наложенными поддиапазонами фиксированной длины. Это полезно для анализа скользящих окон, например, при работе с временными рядами или потоками данных.
👩💻
@quizcpp
⚙️ std::linear_congruential_engine
std::linear_congruential_engine — это генератор псевдослучайных чисел, который основан на методе линейной конгруэнтности. Он полезен, когда требуется простой, быстрый и воспроизводимый генератор случайных чисел с контролируемыми параметрами.
👩💻
@quizcpp
std::linear_congruential_engine — это генератор псевдослучайных чисел, который основан на методе линейной конгруэнтности. Он полезен, когда требуется простой, быстрый и воспроизводимый генератор случайных чисел с контролируемыми параметрами.
👩💻
@quizcpp
👍1
⚙️ std::destroy_n
std::destroy_n (C++17) удаляет заданное количество объектов, вызывая их деструкторы вручную. Это особенно полезно при ручном управлении временем жизни объектов, например, в аллокаторах или при использовании алгоритмов uninitialized_*.
👩💻
@quizcpp
std::destroy_n (C++17) удаляет заданное количество объектов, вызывая их деструкторы вручную. Это особенно полезно при ручном управлении временем жизни объектов, например, в аллокаторах или при использовании алгоритмов uninitialized_*.
👩💻
@quizcpp
👍1
⚙️ std::assume_aligned
std::assume_aligned (C++20) информирует компилятор о том, что указатель выровнен по определенной границе. Это может повысить производительность при работе с SIMD и низкоуровневыми структурами. Эта функция полезна в высокопроизводительных вычислениях и системном программировании.
👩💻
@quizcpp
std::assume_aligned (C++20) информирует компилятор о том, что указатель выровнен по определенной границе. Это может повысить производительность при работе с SIMD и низкоуровневыми структурами. Эта функция полезна в высокопроизводительных вычислениях и системном программировании.
👩💻
@quizcpp
👍1
⚙️ std::stacktrace
std::stacktrace (C++23) предоставляет возможность получения стека вызовов в процессе выполнения программы. Это может быть очень полезно для ведения логов, отладки, создания отчетов о сбоях и встроенной диагностики — даже в продуктивной среде.
👩💻
@quizcpp
std::stacktrace (C++23) предоставляет возможность получения стека вызовов в процессе выполнения программы. Это может быть очень полезно для ведения логов, отладки, создания отчетов о сбоях и встроенной диагностики — даже в продуктивной среде.
👩💻
@quizcpp
⚙️ std::is_constant_evaluated()
std::is_constant_evaluated() (C++20) помогает выяснить, выполняется ли код в процессе constexpr-вычисления. Это полезно для создания функций, которые ведут себя по-разному на этапе компиляции и во время выполнения.
👩💻
@quizcpp
std::is_constant_evaluated() (C++20) помогает выяснить, выполняется ли код в процессе constexpr-вычисления. Это полезно для создания функций, которые ведут себя по-разному на этапе компиляции и во время выполнения.
👩💻
@quizcpp
⚙️ std::uninitialized_default_construct_n
std::uninitialized_default_construct_n (C++17) вызывает конструкторы по умолчанию для объектов в неинициализированной области памяти без задания значений. Это удобно при ручном управлении памятью и создании аллокаторов или контейнеров.
👩💻
@quizcpp
std::uninitialized_default_construct_n (C++17) вызывает конструкторы по умолчанию для объектов в неинициализированной области памяти без задания значений. Это удобно при ручном управлении памятью и создании аллокаторов или контейнеров.
👩💻
@quizcpp