diff options
| author | Andy Kurnia <andykurn@gmail.com> | 2024-03-24 08:15:00 +0800 |
|---|---|---|
| committer | Andy Kurnia <andykurn@gmail.com> | 2024-03-24 08:15:00 +0800 |
| commit | 643029693b2987b4b7c8b5073e8a25536cca7069 (patch) | |
| tree | dab00783f9a58d1d09f9789cafce836c20dae7d0 | |
| parent | 5afe4a9e09b09b2a74cf5cbce5b69ca40b3873a9 (diff) | |
| download | rust-643029693b2987b4b7c8b5073e8a25536cca7069.tar.gz rust-643029693b2987b4b7c8b5073e8a25536cca7069.zip | |
clarify equivalency of binary_search and partition_point
| -rw-r--r-- | library/alloc/src/collections/vec_deque/mod.rs | 4 | ||||
| -rw-r--r-- | library/core/src/slice/mod.rs | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/library/alloc/src/collections/vec_deque/mod.rs b/library/alloc/src/collections/vec_deque/mod.rs index 41935a69420..b1752a3465f 100644 --- a/library/alloc/src/collections/vec_deque/mod.rs +++ b/library/alloc/src/collections/vec_deque/mod.rs @@ -2465,7 +2465,9 @@ impl<T, A: Allocator> VecDeque<T, A> { /// let mut deque: VecDeque<_> = [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].into(); /// let num = 42; /// let idx = deque.partition_point(|&x| x <= num); - /// // The above is equivalent to `let idx = deque.binary_search(&num).unwrap_or_else(|x| x);` + /// // If `num` is unique, `s.partition_point(|&x| x < num)` (with `<`) is equivalent to + /// // `s.binary_search(&num).unwrap_or_else(|x| x)`, but using `<=` may allow `insert` + /// // to shift less elements. /// deque.insert(idx, num); /// assert_eq!(deque, &[0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 42, 55]); /// ``` diff --git a/library/core/src/slice/mod.rs b/library/core/src/slice/mod.rs index b1ae07b05f7..d30ede7d1f9 100644 --- a/library/core/src/slice/mod.rs +++ b/library/core/src/slice/mod.rs @@ -2729,7 +2729,9 @@ impl<T> [T] { /// let mut s = vec![0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]; /// let num = 42; /// let idx = s.partition_point(|&x| x <= num); - /// // The above is equivalent to `let idx = s.binary_search(&num).unwrap_or_else(|x| x);` + /// // If `num` is unique, `s.partition_point(|&x| x < num)` (with `<`) is equivalent to + /// // `s.binary_search(&num).unwrap_or_else(|x| x)`, but using `<=` will allow `insert` + /// // to shift less elements. /// s.insert(idx, num); /// assert_eq!(s, [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 42, 55]); /// ``` |
