Публикации по теме 'cpp'


LeetCode 199- Двоичное дерево, вид справа
Вопрос : Учитывая root бинарного дерева, представьте, что вы стоите на правой стороне от него, верните значения видимых узлов, упорядоченные сверху вниз . Пример 1: Input: root = [1,2,3,null,5,null,4] Output: [1,3,4] Решение: В данной задаче нам нужно найти правильный вид бинарного дерева. Правый вид означает узел, который мы увидим, если посмотрим на дерево с правой стороны. Во-первых, мы проверим, является ли дерево null или нет. if(!root)..

Практическое руководство по реализации std::shared_ptr
std::shared_ptr — это интеллектуальный указатель, который сохраняет совместное владение объектом через указатель. Объект удаляется, когда последний оставшийся общий указатель на него выходит за пределы области действия. Эта реализация предназначена для демонстрации основных функций std::shared_ptr , но не является полной реализацией и не предназначена для использования в производственном коде. template<typename T> class shared_ptr { template <typename U> friend..

Ежедневный бит(е) C++ | std::condition_variable
Ежедневный бит (е) C++ # 20, Переменные условия: std::condition_variable и std::condition_variable_any std::condition_variable и std::condition_variable_any оборачивают логику потока, ожидающего предварительного условия. Нередко потоку не просто нужно получить блокировку для продолжения работы; также должны быть соблюдены определенные условия. Например, входы должны быть готовы. Переменные условия принимают полученную блокировку и условие и будут: снять блокировку и..

Расстраивающие мнения о статических анализаторах
Инструменты статического анализа значительно продвинулись вперед за время своего существования. Они уже не напоминают «линтеры», активно использовавшиеся 20 лет назад. Но некоторые программисты до сих пор считают их крайне примитивными инструментами. И это очень печально. Больно видеть, что методология статического анализа вообще и наш анализатор PVS-Studio в частности так трактуются. Такое чувство вызвал комментарий, оставленный под одной из наших статей. В той статье мы говорили,..

Запуск CppExpert
Бесплатный веб-сайт для интерактивного изучения C++. Если вы хотите изучать C++ бесплатно и с удовольствием, то вам повезло! Есть новый веб-сайт, который предлагает именно это. Веб-сайт под названием C«ppExpert — идеальный ресурс для всех, кто хочет изучить все тонкости языка программирования C++. Одна из лучших особенностей CppExpert заключается в том, что его можно использовать совершенно бесплатно. Никакой абонентской платы, никаких скрытых затрат — только простые и понятные..

Ежедневный бит(е) C++ | Разделение мрамора
Ежедневная часть (e) C++ # 205, Распространенная проблема на собеседовании: расщепление шариков. Сегодня мы рассмотрим распространенную задачу интервью C++: расщепление шариков. Дан ряд шариков с разными значениями, представленный как std::vector‹int64_t› , разделите эти шарики на k смежных секций. Возвращает разницу между максимальным и минимальным достижимыми суммарными значениями разделов, учитывая, что раздел i..j имеет значение values[i]+values[j] . При достижимости..

Ежедневный бит(е) C++ | Настройка свопа
Ежедневный бит (е) C++ # 62, Правильная настройка и вызов свопа Настройка подкачки для определяемых пользователем типов и правильный вызов подкачки с запасным вариантом могут быть сложными. Если мы не используем версию диапазона C++20, нам нужно правильно реализовать настроенную версию как дружественную функцию (сделав ее видимой только для ADL) и использовать своп по умолчанию при ее вызове (чтобы получить запасной вариант). #include <algorithm> namespace MyNamespace {..