I have a scenario where I have to compare the keys of vector. I have 2 values in each vector key.
I have to find a vector key in which
- first value of the vector should be greater than all first value of each vector key
- and the second value of the vector should be smaller than all second value of each vector key
Please find below sample code:
let mut queue : HashMap<Vec<u8>, Vec<u8>> = HashMap::new();
queue.insert(vec![5 as u8, queue.keys().len() as u8], vec![0]);
queue.insert(vec![10 as u8, queue.keys().len() as u8], vec![1]);
queue.insert(vec![10 as u8, queue.keys().len() as u8], vec![2]);
queue.insert(vec![3 as u8, queue.keys().len() as u8], vec![2]);
queue.insert(vec![4 as u8, queue.keys().len() as u8], vec![3]);
queue.insert(vec![6 as u8, queue.keys().len() as u8], vec![4]);
let key= queue
.iter()
.max_by(|a, b| {
a.0.cmp(&b.0)
})
.map(|(k, _v)| k);
println!("{:?}", key);
I am getting this output Some([10, 2]). But I want Some([10, 1]) as output.
`
here is my map : {[10, 1]: [1], [4, 4]: [3], [6, 5]: [4], [10, 2]: [2], [3, 3]: [2], [5, 0]: [0]}