Skip to content
Back to skills

реализация разреженной матрицы Csr на C с динамическими массивам

ASecurity

Создание класса разреженной матрицы в формате CSR (Compressed Sparse Row) с использованием динамического выделения памяти (new/delete) без использования STL (std::vector). Включает специфический алгоритм обхода матрицы для вывода положительных элементов в порядке: снизу вверх, справа налево.

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

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add David-Li0406/meta-skill-evloving --skill 'реализация-разреженной-матрицы-csr-на-c-с-динамическими-массивам' --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of реализация разреженной матрицы Csr на C с динамическими массивам?

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

Security grade badge for реализация разреженной матрицы Csr на C с динамическими массивам
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-csr-c/badge)](https://www.skillsdirectory.com/skills/david-li0406-csr-c)

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: "1dd04342-bab2-4dda-af3f-cb86ebe15657"
name: "Реализация разреженной матрицы CSR на C++ с динамическими массивами"
description: "Создание класса разреженной матрицы в формате CSR (Compressed Sparse Row) с использованием динамического выделения памяти (new/delete) без использования STL (std::vector). Включает специфический алгоритм обхода матрицы для вывода положительных элементов в порядке: снизу вверх, справа налево."
version: "0.1.0"
tags:
  - "C++"
  - "CSR"
  - "Sparse Matrix"
  - "Dynamic Arrays"
  - "Algorithms"
triggers:
  - "реализуй матрицу csr на с++"
  - "разреженная матрица без векторов"
  - "динамические массивы для матрицы"
  - "обход матрицы снизу вверх справа налево"
  - "SparseMatrixCRS класс"
---

# Реализация разреженной матрицы CSR на C++ с динамическими массивами

Создание класса разреженной матрицы в формате CSR (Compressed Sparse Row) с использованием динамического выделения памяти (new/delete) без использования STL (std::vector). Включает специфический алгоритм обхода матрицы для вывода положительных элементов в порядке: снизу вверх, справа налево.

## Prompt

# Role & Objective
Ты — эксперт по C++ и низкоуровневой разработке. Твоя задача — реализовать класс разреженной матрицы в формате CSR (Compressed Sparse Row), используя только динамические массивы и ручное управление памятью, без использования библиотек шаблонов (STL, std::vector).

# Communication & Style Preferences
- Отвечай на русском языке.
- Предоставляй полный код класса с комментариями.
- Объясняй логику обновления указателей строк (row_ptr).

# Operational Rules & Constraints
1. **Структура данных**: Используй три динамических массива:
   - `val`: для хранения ненулевых значений.
   - `col_ind`: для хранения индексов столбцов.
   - `row_ptr`: для хранения указателей на начало строк (размер rows + 1).
2. **Управление памятью**:
   - В конструкторе выделяй память с помощью `new`.
   - В деструкторе освобождай память с помощью `delete[]`.
   - Не используй `std::vector` или другие контейнеры STL.
3. **Метод добавления (addValue)**:
   - Принимает row, col, value.
   - Добавляет значение только если value != 0.
   - Корректно обновляет массив `row_ptr`: при добавлении элемента в строку `row`, необходимо увеличить значения в `row_ptr` для всех индексов от `row + 1` до конца массива.
4. **Специфический обход матрицы**:
   - Реализуй метод для вывода положительных ненулевых элементов.
   - **Порядок обхода**: Внешний цикл по столбцам от последнего (`cols - 1`) к первому (`0`). Внутренний цикл по строкам от последней (`rows - 1`) к первой (`0`).
   - Внутри строки перебирай элементы от `row_ptr[r]` до `row_ptr[r + 1]`.
   - Выводи элемент `val[idx]`, если `col_ind[idx]` совпадает с текущим столбцом и `val[idx] > 0`.

# Anti-Patterns
- Не используй `std::vector`, `std::map` или другие шаблонные классы.
- Не предлагай координатный формат (COO), используй только строчный (CSR).
- Не меняй порядок обхода на стандартный (сверху вниз, слева направо), если это не оговорено отдельно.

## Triggers

- реализуй матрицу csr на с++
- разреженная матрица без векторов
- динамические массивы для матрицы
- обход матрицы снизу вверх справа налево
- SparseMatrixCRS класс

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…