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


LeetCode 2095- Удалить средний узел связанного списка
Вопрос : Вам дается head связанного списка. Удалите средний узел и верните элемент head измененного связанного списка . Средний узел связанного списка размером n  – это узел ⌊n / 2⌋th из начала , использующий индексацию на основе 0 , где ⌊x⌋  – наибольшее целое число. меньше или равно x . Для n = 1 , 2 , 3 , 4 и 5 средними узлами являются 0 , 1 , 1 , 2 и соответственно. Пример 1: Input: head = [1,3,4,7,1,2,6] Output:..

Изучаем C++ с помощью шаблонов программ: делаем что-то определенное количество раз
Существует множество задач компьютерного программирования, требующих выполнения набора действий определенное количество раз. Например, программа средней оценки для пяти учащихся должна пять раз предлагать пользователю ввести оценку, чтобы определить среднюю оценку для класса. Существует шаблон программы, который обрабатывает эту ситуацию: сделать что-то определенное количество раз. Этот шаблон обычно использует оператор for в своей реализации, поэтому мы начнем с него, прежде чем..

Ежедневный бит(е) C++ | Любопытно повторяющийся шаблон шаблона
Daily bit(e) of C++ #218, Техника C++ для передачи информации о типе производного класса в базовый класс: Curiously Recurring Template Pattern. Curiously Recurring Template Pattern (CRTP) — это метод C++, позволяющий нам передавать информацию о типе производного класса в базовый класс. Типичным вариантом использования CRTP является поддержка Mixin, когда мы инкапсулируем функциональность в базовый класс, не полагаясь на виртуальную диспетчеризацию. Таким образом, производный класс..

Современный C++ на пути к появлению кода: день 20
На 20-й день Адвента Кода мы расшифровываем координаты звездной рощи. Я призываю вас сначала попробовать решить ее самостоятельно https://adventofcode.com . Вход Наши входные данные сегодня представляют собой зашифрованное сообщение в виде ряда целых чисел. Мы примем его как std::list<int64_t> . Расшифровка сообщения Наша цель в первой части — расшифровать сообщение, переупорядочив элементы в зависимости от их значений. Каждый элемент должен переместиться на столько..

Байт кодирования, выпуск № 214
Что говорит лиса? В 214-м выпуске #newsletter есть статья об оптимизации лексера в #golang , сумасшедшие бредни о #functionalprogramming и удивительном путешествии по переносу Zelda Classic на #webassembly . Фантастические состояния Эли Бендерски, Ойсину Кидни и Коннору Кларку за сказочный контент. Если вы хотите получать выпуски информационного бюллетеня сразу в свой почтовый ящик, когда они выходят, рассмотрите возможность подписки по ссылке ниже...

Ежедневные кусочки C++ | станд::очередь
Ежедневный бит C++ № 251. Адаптер контейнера очереди FIFO: std::queue. std::queue  — это адаптер контейнера, реализующий интерфейс очереди FIFO. Варианты резервных контейнеров: std::deque и std::list . #include <queue> std::queue<int> q; // q.size() == 0, q.empty() == true // push a new element into the queue q.push(1); // q.front() == 1, q.back() == 1 // pop an element from the front of the queue q.pop(); q.push(2); q.push(3); q.push(4); while(not q.empty()) {..

Параллелизм в C++ : потоки и задачи
Запуск потоков с асинхронным В последнем разделе мы увидели, как данные могут быть переданы из рабочего потока в родительский поток с использованием промисов и фьючерсов. Недостатком подхода promise-future, однако, является то, что он очень громоздкий (и включает в себя много стандартного кода) для передачи обещания функции потока с использованием ссылки rvalue и std::move . Однако для прямой задачи возврата данных или исключений из рабочего потока в родительский поток существует..