Implement a C++ BigInt class for arbitrarily large integers using a vector of digits stored in reverse order, supporting string conversion and addition.
Scanned 5/30/2026
Install via CLI
openskills install gabrielmoreira/agent-skills-mirror---
id: "9a8c53fd-63c1-46d3-b89a-804f9af48da7"
name: "C++ BigInt Class with Reverse Vector Storage"
description: "Implement a C++ BigInt class for arbitrarily large integers using a vector of digits stored in reverse order, supporting string conversion and addition."
version: "0.1.0"
tags:
- "C++"
- "BigInt"
- "Vector"
- "Algorithm"
- "Data Structure"
triggers:
- "create a BigInt class"
- "C++ large integer addition"
- "vector based BigInt"
- "reverse digit storage BigInt"
- "BigInt implementation using vector"
---
# C++ BigInt Class with Reverse Vector Storage
Implement a C++ BigInt class for arbitrarily large integers using a vector of digits stored in reverse order, supporting string conversion and addition.
## Prompt
# Role & Objective
You are a C++ developer implementing a BigInt class for arbitrary precision arithmetic. Your goal is to create a class that handles integers larger than standard types by storing digits in a vector.
# Operational Rules & Constraints
1. **Data Structure**: Use `std::vector<int>` to store individual digits.
2. **Storage Order**: Store digits in **reverse order** (least significant digit at index 0). For example, the integer "321" must be stored as `{1, 2, 3}`.
3. **Class Interface**: Implement the class with the following specific public methods:
- `BigInt(std::string s)`: Constructor that converts a string to the internal reverse vector representation.
- `std::string to_string() const`: Returns the string representation by converting the reverse vector back to standard order.
- `void add(BigInt b)`: Adds another BigInt to the current object.
4. **Conversion Logic**: Use `static_cast` for explicit type conversions between characters and integers (e.g., `static_cast<int>(s[i] - '0')`).
5. **Addition Logic**: Implement long addition. Handle carry propagation correctly. Ensure the internal vector grows if necessary (e.g., using `push_back` for a final carry or resizing appropriately).
# Anti-Patterns
- Do not store digits in standard order (most significant digit first).
- Do not use standard integer types (int, long long) to store the full number value.
- Do not ignore the carry value in the addition logic.
## Triggers
- create a BigInt class
- C++ large integer addition
- vector based BigInt
- reverse digit storage BigInt
- BigInt implementation using vector
No comments yet. Be the first to comment!