typescript-dsa-stl 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +42 -0
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -89,6 +89,48 @@ clamp(42, 0, 10); // 10
89
89
  range(0, 5); // [0, 1, 2, 3, 4]
90
90
  ```
91
91
 
92
+ ### 2D and 3D vectors (like C++ `vector<vector<int>>`)
93
+
94
+ `Vector<T>` is generic, so you can nest it for 2D/3D grids:
95
+
96
+ | C++ | TypeScript |
97
+ |-----|------------|
98
+ | `vector<int>` | `Vector<number>` |
99
+ | `vector<vector<int>>` | `Vector<Vector<number>>` |
100
+ | `vector<vector<vector<int>>>` | `Vector<Vector<Vector<number>>>` |
101
+
102
+ **2D example:**
103
+
104
+ ```ts
105
+ import { Vector } from 'typescript-dsa-stl';
106
+
107
+ const grid = new Vector<Vector<number>>();
108
+
109
+ const row0 = new Vector<number>([1, 2, 3]);
110
+ const row1 = new Vector<number>([4, 5, 6]);
111
+ grid.push(row0);
112
+ grid.push(row1);
113
+
114
+ grid.at(0).at(1); // 2 (first row, second column)
115
+ grid.at(1).at(0); // 4 (second row, first column)
116
+
117
+ grid.at(0).set(1, 99);
118
+ grid.at(0).push(10);
119
+ ```
120
+
121
+ **3D example:**
122
+
123
+ ```ts
124
+ const cube = new Vector<Vector<Vector<number>>>();
125
+
126
+ const layer0 = new Vector<Vector<number>>();
127
+ layer0.push(new Vector<number>([1, 2]));
128
+ layer0.push(new Vector<number>([3, 4]));
129
+ cube.push(layer0);
130
+
131
+ cube.at(0).at(1).at(0); // 3 (layer 0, row 1, col 0)
132
+ ```
133
+
92
134
  ---
93
135
 
94
136
  ## API overview
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typescript-dsa-stl",
3
- "version": "1.2.2",
3
+ "version": "1.2.3",
4
4
  "description": "STL-style data structures and algorithms for TypeScript: Vector, Stack, Queue, List, PriorityQueue, Map, Set, sort, binarySearch. Use like C++ STL.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",