Vec<u32>
사용자는 slice::binary_search
메서드를 사용합니다.플로트 Vec에서 이진 검색을 수행하는 방법은 무엇입니까?
이유는 이해가 안되기 때문에 f32
과 f64
은 Ord
을 구현하지 않습니다. 프리미티브 유형은 표준 라이브러리에 있기 때문에 직접 Ord
을 구현할 수 없으므로이 방법을 사용할 수있는 것으로 보이지 않습니다.
어떻게 효과적으로 할 수 있습니까?
래퍼 구조체에 실제로 f64
을 랩핑하고 Ord
을 구현해야합니까? 이 작업을 수행하는 것이 매우 힘들어 보이며 아무런 이유없이 효율적으로 데이터 블록을 앞뒤로 전송하려면 많은 수의 transmute
이 필요합니다.
하나는 사용할 수'binary_search_by'이다. 'f32' /'f64'는'PartialOrd'를 구현하므로'NaN'이 될 수 없다는 것을 안다면'partial_cmp'의 결과를 풀 수 있습니다 : http://doc.rust-lang.org/std/slice/ trait.SliceExt.html # tymethod.binary_search_by – BurntSushi5
[ordered_float] (https://crates.io/crates/ordered-float) 또는 [ord_subset] (https://crates.io/crates/ord_subset) 상자를 사용할 수 있습니다. http://stackoverflow.com/a/37144472/5189607을 참조하십시오. – malbarbo