@@ -4,7 +4,7 @@ title: "Vector"
4
4
5
5
# Vector
6
6
7
- The Vector in Move provides a flexible and dynamic array-like data structure that supports various operations such
7
+ The Vector in Move provides a flexible and dynamic array-like data structure that supports various operations such
8
8
as indexing, adding, and removing elements. Vectors in Move are growable and support 0-based indexing.
9
9
10
10
## Core Features of Vector
@@ -68,26 +68,26 @@ The following constants define various error codes used within the module:
68
68
### Creating and Using a Vector
69
69
70
70
``` move filename="vector.move"
71
- module example ::vector_usage {
72
- use std::vector::{Self, vector} ;
71
+ module 0x42 ::vector_usage {
72
+ use std::vector;
73
73
74
74
public entry fun main() {
75
- let mut v = vector::empty<u64>();
75
+ let v = vector::empty<u64>();
76
76
vector::push_back(&mut v, 10);
77
77
vector::push_back(&mut v, 20);
78
-
78
+
79
79
let length = vector::length(&v);
80
80
assert!(length == 2, 0);
81
-
81
+
82
82
let first_elem = vector::borrow(&v, 0);
83
83
assert!(*first_elem == 10, 0);
84
-
84
+
85
85
let second_elem = vector::borrow(&v, 1);
86
86
assert!(*second_elem == 20, 0);
87
-
87
+
88
88
let last_elem = vector::pop_back(&mut v);
89
89
assert!(last_elem == 20, 0);
90
-
90
+
91
91
vector::destroy_empty(v);
92
92
}
93
93
}
@@ -96,33 +96,33 @@ module example::vector_usage {
96
96
### Appending Vectors
97
97
98
98
``` move filename="vector.move"
99
- module example ::vector_usage {
100
- use std::vector::{Self, vector} ;
99
+ module 0x42 ::vector_usage {
100
+ use std::vector;
101
101
102
102
public fun append_vectors() {
103
- let mut v1 = vector::empty<u64>();
104
- let mut v2 = vector::empty<u64>();
105
-
103
+ let v1 = vector::empty<u64>();
104
+ let v2 = vector::empty<u64>();
105
+
106
106
vector::push_back(&mut v1, 1);
107
107
vector::push_back(&mut v1, 2);
108
-
108
+
109
109
vector::push_back(&mut v2, 3);
110
110
vector::push_back(&mut v2, 4);
111
-
111
+
112
112
vector::append(&mut v1, v2);
113
-
113
+
114
114
let length = vector::length(&v1);
115
115
assert!(length == 4, 0);
116
-
116
+
117
117
let first_elem = vector::borrow(&v1, 0);
118
118
assert!(*first_elem == 1, 0);
119
-
119
+
120
120
let second_elem = vector::borrow(&v1, 1);
121
121
assert!(*second_elem == 2, 0);
122
-
122
+
123
123
let third_elem = vector::borrow(&v1, 2);
124
124
assert!(*third_elem == 3, 0);
125
-
125
+
126
126
let fourth_elem = vector::borrow(&v1, 3);
127
127
assert!(*fourth_elem == 4, 0);
128
128
}
@@ -132,69 +132,49 @@ module example::vector_usage {
132
132
### Removing Elements
133
133
134
134
``` move filename="vector.move"
135
- module example ::vector_usage {
136
- use std::vector::{Self, vector} ;
135
+ module 0x42 ::vector_usage {
136
+ use std::vector;
137
137
138
138
public fun remove_elements() {
139
- let mut v = vector::empty<u64>();
140
-
139
+ let v = vector::empty<u64>();
140
+
141
141
vector::push_back(&mut v, 1);
142
142
vector::push_back(&mut v, 2);
143
143
vector::push_back(&mut v, 3);
144
-
144
+
145
145
let removed_elem = vector::remove(&mut v, 1);
146
146
assert!(removed_elem == 2, 0);
147
-
147
+
148
148
let length = vector::length(&v);
149
149
assert!(length == 2, 0);
150
-
150
+
151
151
let first_elem = vector::borrow(&v, 0);
152
152
assert!(*first_elem == 1, 0);
153
-
153
+
154
154
let second_elem = vector::borrow(&v, 1);
155
155
assert!(*second_elem == 3, 0);
156
156
}
157
157
}
158
158
```
159
159
160
- ### Clearing the Vector
161
-
162
- ``` move filename="vector.move"
163
- module example::vector_usage {
164
- use std::vector::{Self, vector};
165
-
166
- public fun clear_vector() {
167
- let mut v = vector::empty<u64>();
168
-
169
- vector::push_back(&mut v, 1);
170
- vector::push_back(&mut v, 2);
171
- vector::push_back(&mut v, 3);
172
-
173
- vector::clear(&mut v);
174
- let length = vector::length(&v);
175
- assert!(length == 0, 0);
176
- }
177
- }
178
- ```
179
-
180
160
### Swapping Elements
181
161
182
162
``` move filename="vector.move"
183
- module example ::vector_usage {
184
- use std::vector::{Self, vector} ;
163
+ module 0x42 ::vector_usage {
164
+ use std::vector;
185
165
186
166
public fun swap_elements() {
187
- let mut v = vector::empty<u64>();
188
-
167
+ let v = vector::empty<u64>();
168
+
189
169
vector::push_back(&mut v, 1);
190
170
vector::push_back(&mut v, 2);
191
171
vector::push_back(&mut v, 3);
192
-
172
+
193
173
vector::swap(&mut v, 0, 2);
194
-
174
+
195
175
let first_elem = vector::borrow(&v, 0);
196
176
assert!(*first_elem == 3, 0);
197
-
177
+
198
178
let third_elem = vector::borrow(&v, 2);
199
179
assert!(*third_elem == 1, 0);
200
180
}
0 commit comments