[][src]Function out::slice::min_by_cached_key

pub fn min_by_cached_key<T, K: Ord>(
    v: &mut [T],
    n: usize,
    f: impl FnMut(&T) -> K
) -> &mut [T]

Returns the n smallest items with a key extraction function.

The key function is called only once per element, but for simple key functions sort_by_key is likely to be faster.

This sort is stable, i.e. it preserves the order of equal elements.

Panics

Panics if n > len.

Examples

let mut v = [-5_i32, 4, 1, -3, 2];
let min = out::slice::min_by_cached_key(&mut v, 3, |a| a.abs());
assert_eq!(min, [-3, 2, 1]);