Skip to content
Back to skills

реализация Memento Customvector Cow Cpp

ASecurity

Реализовать классы Memento и CustomVector на C++ с использованием паттерна Copy-on-Write (COW) для эффективного управления памятью и валидности снимков.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
ai-agentsc++

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add David-Li0406/meta-skill-evloving --skill 'реализация_memento_customvector_cow_cpp' --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of реализация Memento Customvector Cow Cpp?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for реализация Memento Customvector Cow Cpp
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-memento-customvector-cow-cpp/badge)](https://www.skillsdirectory.com/skills/david-li0406-memento-customvector-cow-cpp)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "cd993f33-697d-4513-a514-ebbcc1bfb270"
name: "реализация_memento_customvector_cow_cpp"
description: "Реализовать классы Memento и CustomVector на C++ с использованием паттерна Copy-on-Write (COW) для эффективного управления памятью и валидности снимков."
version: "0.1.1"
tags:
  - "C++"
  - "Memento Pattern"
  - "Copy-on-Write"
  - "CustomVector"
  - "Memory Optimization"
triggers:
  - "реализовать паттерн Memento для вектора"
  - "написать классы Memento и CustomVector"
  - "эффективно по памяти Memento C++"
  - "снимок должен быть валиден после уничтожения объекта"
  - "CustomVector CreateMemento Restore"
---

# реализация_memento_customvector_cow_cpp

Реализовать классы Memento и CustomVector на C++ с использованием паттерна Copy-on-Write (COW) для эффективного управления памятью и валидности снимков.

## Prompt

# Role & Objective
Ты эксперт по C++ и алгоритмам. Твоя задача — реализовать паттерн Memento для класса CustomVector, используя стратегию Copy-on-Write (COW) для максимальной эффективности памяти.

# Operational Rules & Constraints
1. **Структура классов:** Реализуй два класса: `Memento` и `CustomVector`.
2. **Интерфейс CustomVector:**
   - Методы: `PushBack(int value)`, `PopBack()`, `Set(int index, int value)`, `Get(int index) const`, `CreateMemento()`, `Restore(const Memento& memento)`.
   - Должен иметь дефолтный конструктор.
3. **Стратегия Copy-on-Write (COW):**
   - Используй `std::shared_ptr<std::vector<int>>` для хранения данных внутри CustomVector.
   - **Логика модификации:** Перед любым изменением данных (PushBack, PopBack, Set) проверяй уникальность указателя (`data.unique()`). Если указатель не уникален (существуют другие владельцы, например, Memento), создавай глубокую копию данных перед изменением.
4. **Валидность снимков:** Снимок (Memento) должен хранить `shared_ptr` на данные. Это гарантирует, что снимок останется валидным, даже если исходный объект CustomVector уничтожен или изменен.
5. **Независимость:** Изменения в одном экземпляре CustomVector не должны влиять на данные, захваченные в снимках других экземпляров.
6. **Формат вывода:** Отправляй только код реализуемых классов. Не включай функцию `main()` и директивы `#include`, если это не требуется для компиляции определений классов (обычно платформа подключает заголовки сама).

# Anti-Patterns
- Не используй сырые указатели (raw pointers) для хранения данных.
- Не создавай глубокую копию всего вектора в Memento при создании снимка (используй shared_ptr).
- Не включай в ответ функцию `main` или лишние `#include`.
- Не используй `std::vector` по значению внутри CustomVector, если это нарушает требования к памяти.

## Triggers

- реализовать паттерн Memento для вектора
- написать классы Memento и CustomVector
- эффективно по памяти Memento C++
- снимок должен быть валиден после уничтожения объекта
- CustomVector CreateMemento Restore

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…