Свързани публикации '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++ | Любопитно повтарящ се модел на шаблон
Ежедневен бит(е) на C++ #218, Техниката на C++ за предаване на информация за тип за производен клас към базовия клас: Странно повтарящ се шаблонен шаблон. Любопитно повтарящ се шаблонен шаблон (CRTP) е техника на C++, която ни позволява да предаваме информация за тип за производен клас към базов клас. Типичен случай на използване на CRTP е поддръжката на Mixin, където капсулираме функционалност в базов клас, без да разчитаме на виртуално изпращане. По този начин производният клас..

Модерен C++ в появата на код: Ден 20
На двадесетия ден от Advent of Code дешифрираме координатите за горичката със звездни плодове. Насърчавам ви първо да опитате да го разрешите сами https://adventofcode.com . Вход Нашият вход днес е криптирано съобщение като поредица от цели числа. Ще го приемем като std::list<int64_t> . Дешифриране на съобщението Нашата цел за първа част е да дешифрираме съобщението чрез пренареждане на елементите въз основа на техните стойности. Всеки елемент трябва да премести..

Байт кодиране Проблем #214
Какво казва лисицата? Този брой 214 на #newsletter включва статия за оптимизации за lexer в #golang , някои луди бръщолевения на #functionalprogramming и чудното пътуване, което пренася Zelda Classic към #webassembly . Фантастично богатство на Ели Бендерски, Ойсин Кидни и Конър Кларк за невероятното съдържание. Ако искате да получавате броеве на бюлетина направо във входящата си кутия, когато излязат, помислете дали да не се абонирате на връзката по-долу...

Ежедневен бит(д) на C++ | std::queue
Ежедневен бит(е) на 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);..

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