Синхронізована черга С++17
1000 UAHДоповни доданий шаблон так, щоб клас SBuffer був реалізацією синхронізованої черги. Черга повинна додатково керувати пулом об’єктів типу ItemType. Конструктор об’єкта класу SBuffer має створити N об’єктів типу ItemType. Вказівники лише на ці об’єкти можуть повертатися реалізованими методами. Також можна вважати, що всі вказівники, передані в аргументах, раніше були повернуті іншими методами цього ж об’єкта.
Специфікація методів:
int enqueue(ItemType* item)— додає в кінець черги об’єкт, на який вказуєitem, і повертає1. Якщо раніше було викликаноstop(), нічого не робить і повертає0.ItemType* dequeue()— видаляє об’єкт з початку черги й повертає вказівник на нього. Якщо черга порожня, призупиняє виконання потоку до того, як з’явиться доступний об’єкт, або буде викликано методstopдля об’єкта черги.ItemType* allocItem()— повертає будь-який об’єкт типуItemTypeз пулу наразі невикористовуваних об’єктів. Якщо всі об’єкти зараз зайняті, призупиняє виконання потоку до звільнення якогось об’єкта або до виклику методуstop.void freeItem(ItemType* item)— позначає звільнення ресурсу потоком. Переданий об’єкт*itemмає повернутися до пулу невикористовуваних об’єктів.void stop()— з моменту викликуstopна об’єкті черги методallocItemзавжди повертаєnullptr, а методdequeueповертає об’єкти, доки черга не спорожніє; після цього він також завжди повертаєnullptr.
Черга має працювати згідно зі специфікацією під час використання її багатьма потоками. Рішення, що ґрунтуються на активному очікуванні, не допускаються.
Умови:
1. **Заборона LLM-генерації:** код обов’язково перевірятиметься на списування із загальнодоступних моделей ШІ — категорично заборонено звертатися до публічних LLM для написання коду.
2. **Оцінювання:** ваш файл буде завантажений у автоматизовану систему тестування. Для успішного прийняття рішення він має пройти всі тести без помилок.
Шаблон розв’язку
Слід подати лише заголовковий файл sbuffer.h. Для синхронізації потоків, будь ласка, використовуйте можливості стандартної бібліотеки C++17.
Додатки 1
Відгук замовника про співпрацю з Roman Biniukov
Синхронізована черга С++17Робота зроблена швидко і якісно.
Відгук фрилансера про співпрацю з Vadym Hassieiev
Синхронізована черга С++17Все чудово, дякую за проект
-
762 12 0 Добрий день. Завдання не виглядає складним. Переглянув файл sbuffer.h. Реалізую за вимогами. Звертайтесь
Актуальні фриланс-проєкти в категорії C та C++
Реверс-інжиніринг консольних утиліт для опитування контролерів SSD (Flash ID)1. Мета роботиВиділення програмного інтерфейсу (API) взаємодії з контролерами SSD/NVMe з наданого набору консольних утиліт (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron та ін.). Результатом має стати робочий код мовою C/C++ або точна документація структур для… C та C++, Десктопні додатки ∙ 2 дні 2 години тому ∙ 5 ставок |
Розробка Minecraft Java Seed Map / Seed Viewer для сайтуРозробка Minecraft Java Seed Map / Seed Viewer для сайтуОпис проєкту Потрібно розробити browser-based інструментMinecraft Java Seed Map / Seed Viewer, який буде працювати на нашому сайті та дозволятиме користувачу ввести seed Minecraft Java Edition і переглянути інтерактивну… C та C++, HTML та CSS верстання ∙ 2 дні 9 годин тому ∙ 14 ставок |
Порівняльний аналіз ефективності кастомного ПЗ (v2.2-field) та еталонного ПЗ (Meshtastic v2.x)
1000 UAH
Порівняльний аналіз ефективності кастомного ПЗ (v2.2-field) та еталонного ПЗ (Meshtastic v2.x) на ідентичній апаратній платформі (ESP32 + SX1268, 2W) за критеріями дальності, пропускної спроможності, стабільності лінка та енергоспоживання. Провести тести з вимірюваннями з… C та C++, C# ∙ 6 днів 16 годин тому ∙ 2 ставки |
Консультація та аудит поточного проєкту на Odoo 19 Community EditionШукаємо Odoo Developer — соло-розробника з досвідом розробки на Odoo 19 Community Edition, у тому числі за допомогою Claude Code. Нам потрібен спеціаліст, який має успішно реалізовані проєкти в Odoo та практичний досвід розробки з використанням Claude Code. Важливо: розглядаємо… C та C++, Javascript та Typescript ∙ 9 днів 18 годин тому ∙ 8 ставок |
Розробка ПЗ для Arduino (RF-модулі 3–7.5 ГГц, автоматичне сканування частот)Потрібно розробити систему на Arduino для автоматичного пошуку активного аналогового відеосигналу та автоматичного налаштування передавача на виявлену частоту.Планується використання трьох окремих приймально-передавальних модулів: 3000–4200 МГц; 4900–6000 МГц; 6100–7500… C та C++, Вбудовані системи та мікроконтролери ∙ 10 днів 18 годин тому ∙ 5 ставок |