Skip to content

Commit 6430296

Browse files
committed
clarify equivalency of binary_search and partition_point
1 parent 5afe4a9 commit 6430296

File tree

2 files changed

+6
-2
lines changed
  • library

2 files changed

+6
-2
lines changed

library/alloc/src/collections/vec_deque/mod.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -2465,7 +2465,9 @@ impl<T, A: Allocator> VecDeque<T, A> {
24652465
/// let mut deque: VecDeque<_> = [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].into();
24662466
/// let num = 42;
24672467
/// let idx = deque.partition_point(|&x| x <= num);
2468-
/// // The above is equivalent to `let idx = deque.binary_search(&num).unwrap_or_else(|x| x);`
2468+
/// // If `num` is unique, `s.partition_point(|&x| x < num)` (with `<`) is equivalent to
2469+
/// // `s.binary_search(&num).unwrap_or_else(|x| x)`, but using `<=` may allow `insert`
2470+
/// // to shift less elements.
24692471
/// deque.insert(idx, num);
24702472
/// assert_eq!(deque, &[0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 42, 55]);
24712473
/// ```

library/core/src/slice/mod.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -2729,7 +2729,9 @@ impl<T> [T] {
27292729
/// let mut s = vec![0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55];
27302730
/// let num = 42;
27312731
/// let idx = s.partition_point(|&x| x <= num);
2732-
/// // The above is equivalent to `let idx = s.binary_search(&num).unwrap_or_else(|x| x);`
2732+
/// // If `num` is unique, `s.partition_point(|&x| x < num)` (with `<`) is equivalent to
2733+
/// // `s.binary_search(&num).unwrap_or_else(|x| x)`, but using `<=` will allow `insert`
2734+
/// // to shift less elements.
27332735
/// s.insert(idx, num);
27342736
/// assert_eq!(s, [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 42, 55]);
27352737
/// ```

0 commit comments

Comments
 (0)