Skip to content

Latest commit

 

History

History
68 lines (67 loc) · 1.83 KB

9.vectors.md

File metadata and controls

68 lines (67 loc) · 1.83 KB

Vectors

  • Vectors are resizable arrays

  • Two ways to create a vector:

    • vec! macro
      let my_vec: Vec<i32> = vec![1, 2, 3, 4, 5];
    • Vec::new();
      let mut my_vec = Vec::new();
  • Access an Element of a Vector my_vec[0]

  • Print the Vector

    fn main() {   
        let my_vec = vec![1, 2, 3,4,5];
        //using debug trait 
        println!("Vector : {:?}", my_vec);
        println!("Print using for loop"); 
        // using loop
        let mut index = 0;
        for i in my_vec {
            println!("Element at index {}:{} ", index, i);
            index = index+1;
        }
    }
  • Methods of Vectors

    • Vec::new()
    • push(arg)
    • pop()
    • contains(arg)
    • remove(index)
    • len()
    • reserve()
    • capacity()
    • and more
  • Iterating on values in vector

    • iter() method
      let my_vec = vec![1, 2, 3, 4, 5];
      // using loop
      let mut index = 0;
      for i in my_vec.iter(){ // it works even if .iter() is not written
          println!("Element at index {}:{} ", index, i);
          index = index + 1;
      }   
  • Iterate and Mutate Values

    • .iter_mut() method
      let mut my_vec = vec![1, 2, 3, 4, 5];
      println!("Initial Vector : {:?}", my_vec);
      for x in my_vec.iter_mut(){
         *x *= 3;
      }
      // print the updated vector
      println!("Updated Vector : {:?}", my_vec); 
  • slicing a vector

        let my_vec = vec![1, 2, 3, 4, 5];
        let slice:&[i32] = &my_vec[2..4];
        // print the vector
        println!("Slice of the vector : {:?}",slice);
  • vector can be of type enum