// this is just me making a add vec func where // it retains the order for add or subtracting // and vec1 and vec2 can be different sizes fn add_vec(vec1: &Vec, vec2: &Vec) -> Vec { //return vec![vec1[0]+vec2[0],vec1[1]+vec2[1]]; let mut len=vec1.len(); let mut sumvec: Vec = vec1.to_vec(); let addvec: Vec = vec2.to_vec(); if vec1.len() < vec2.len() { len = vec2.len(); } for i in 0..len { if let Some(_) = vec2.get(i) { if let Some(_) = vec1.get(i) { sumvec[i] = sumvec[i] + addvec[i] } else { sumvec.push(vec2[i]) } } } return sumvec; } fn sub_vec(vec1: &Vec, vec2: &Vec) -> Vec { let mut len=vec1.len(); let mut sumvec: Vec = vec1.to_vec(); let addvec: Vec = vec2.to_vec(); if vec1.len() < vec2.len() { len = vec2.len(); } for i in 0..len { if let Some(_) = vec2.get(i) { if let Some(_) = vec1.get(i) { sumvec[i] = sumvec[i] - addvec[i] } else { sumvec.push(vec2[i]) } } } return sumvec; } fn main() { println!("{:?}", add_vec(&vec![2,4, -1, 4, 10], &vec![1,-1,-4])); println!("{:?}", add_vec(&vec![1,1], &vec![1,-1,-4,3])); println!("{:?}", sub_vec(&vec![2, -1], &vec![1,1,-4])); }