summaryrefslogtreecommitdiff
path: root/rustlings/exercises/05_vecs
diff options
context:
space:
mode:
authorHunter Kvalevog <hunter@kvog.sh>2026-10-02 21:53:51 -0500
committerHunter Kvalevog <hunter@kvog.sh>2026-10-02 21:53:51 -0500
commit4dfc11d74ab02ac5765ae5d08fb750c91f4744b4 (patch)
tree17ba62056d6b691dd0217b0e8f1b3a5826dce0f6 /rustlings/exercises/05_vecs
parent02d8f1c62896576e1266553a56980eddbc2a88d7 (diff)
rustlings: move to rust/
Diffstat (limited to 'rustlings/exercises/05_vecs')
-rw-r--r--rustlings/exercises/05_vecs/README.md17
-rw-r--r--rustlings/exercises/05_vecs/vecs1.rs22
-rw-r--r--rustlings/exercises/05_vecs/vecs2.rs61
3 files changed, 0 insertions, 100 deletions
diff --git a/rustlings/exercises/05_vecs/README.md b/rustlings/exercises/05_vecs/README.md
deleted file mode 100644
index e1b6128..0000000
--- a/rustlings/exercises/05_vecs/README.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Vectors
-
-Vectors are one of the most-used Rust data structures. In other programming
-languages, they'd simply be called Arrays, but since Rust operates on a
-bit of a lower level, an array in Rust is stored on the stack (meaning it
-can't grow or shrink, and the size needs to be known at compile time),
-and a Vector is stored in the heap (where these restrictions do not apply).
-
-Vectors are a bit of a later chapter in the book, but we think that they're
-useful enough to talk about them a bit earlier. We shall be talking about
-the other useful data structure, hash maps, later.
-
-## Further information
-
-- [Storing Lists of Values with Vectors](https://doc.rust-lang.org/book/ch08-01-vectors.html)
-- [`iter_mut`](https://doc.rust-lang.org/std/primitive.slice.html#method.iter_mut)
-- [`map`](https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.map)
diff --git a/rustlings/exercises/05_vecs/vecs1.rs b/rustlings/exercises/05_vecs/vecs1.rs
deleted file mode 100644
index f976c84..0000000
--- a/rustlings/exercises/05_vecs/vecs1.rs
+++ /dev/null
@@ -1,22 +0,0 @@
-fn array_and_vec() -> ([i32; 4], Vec<i32>) {
- let a = [10, 20, 30, 40]; // Array
-
- let v = vec![10, 20, 30, 40];
-
- (a, v)
-}
-
-fn main() {
- // You can optionally experiment here.
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
-
- #[test]
- fn test_array_and_vec_similarity() {
- let (a, v) = array_and_vec();
- assert_eq!(a, *v);
- }
-}
diff --git a/rustlings/exercises/05_vecs/vecs2.rs b/rustlings/exercises/05_vecs/vecs2.rs
deleted file mode 100644
index 1ec77f7..0000000
--- a/rustlings/exercises/05_vecs/vecs2.rs
+++ /dev/null
@@ -1,61 +0,0 @@
-fn vec_loop(input: &[i32]) -> Vec<i32> {
- let mut output = Vec::new();
-
- for element in input {
- // TODO: Multiply each element in the `input` slice by 2 and push it to
- // the `output` vector.
- output.push(element * 2);
- }
-
- output
-}
-
-fn vec_map_example(input: &[i32]) -> Vec<i32> {
- // An example of collecting a vector after mapping.
- // We map each element of the `input` slice to its value plus 1.
- // If the input is `[1, 2, 3]`, the output is `[2, 3, 4]`.
- input.iter().map(|element| element + 1).collect()
-}
-
-fn vec_map(input: &[i32]) -> Vec<i32> {
- // TODO: Here, we also want to multiply each element in the `input` slice
- // by 2, but with iterator mapping instead of manually pushing into an empty
- // vector.
- // See the example in the function `vec_map_example` above.
- input
- .iter()
- .map(|element| {
- element * 2
- })
- .collect()
-}
-
-fn main() {
- // You can optionally experiment here.
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
-
- #[test]
- fn test_vec_loop() {
- let input = [2, 4, 6, 8, 10];
- let ans = vec_loop(&input);
- assert_eq!(ans, [4, 8, 12, 16, 20]);
- }
-
- #[test]
- fn test_vec_map_example() {
- let input = [1, 2, 3];
- let ans = vec_map_example(&input);
- assert_eq!(ans, [2, 3, 4]);
- }
-
- #[test]
- fn test_vec_map() {
- let input = [2, 4, 6, 8, 10];
- let ans = vec_map(&input);
- assert_eq!(ans, [4, 8, 12, 16, 20]);
- }
-}