Skip to content

Commit 6a99ade

Browse files
committed
extract_if's sample equivalent now really equivalent. Simpler predicate.
1 parent af952c1 commit 6a99ade

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

library/alloc/src/vec/mod.rs

+7-5
Original file line numberDiff line numberDiff line change
@@ -3656,20 +3656,22 @@ impl<T, A: Allocator> Vec<T, A> {
36563656
///
36573657
/// ```
36583658
/// # use std::cmp::min;
3659-
/// # let some_predicate = |x: &mut i32| { *x == 2 || *x == 3 || *x == 6 };
3660-
/// # let mut vec = vec![1, 2, 3, 4, 5, 6];
3661-
/// # let range = 1..4;
3659+
/// # let some_predicate = |x: &mut i32| { *x % 2 == 1 };
3660+
/// # let mut vec = vec![0, 1, 2, 3, 4, 5, 6];
3661+
/// # let range = 1..5;
36623662
/// let mut i = range.start;
3663-
/// while i < min(vec.len(), range.end) {
3663+
/// let mut end = range.end;
3664+
/// while i < min(vec.len(), end) {
36643665
/// if some_predicate(&mut vec[i]) {
36653666
/// let val = vec.remove(i);
3667+
/// end -= 1;
36663668
/// // your code here
36673669
/// } else {
36683670
/// i += 1;
36693671
/// }
36703672
/// }
36713673
///
3672-
/// # assert_eq!(vec, vec![1, 4, 5]);
3674+
/// # assert_eq!(vec, vec![0, 2, 4, 5, 6]);
36733675
/// ```
36743676
///
36753677
/// But `extract_if` is easier to use. `extract_if` is also more efficient,

0 commit comments

Comments
 (0)