diff options
| author | Mark Rousskov <mark.simulacrum@gmail.com> | 2019-08-11 15:18:46 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-08-11 15:18:46 -0400 |
| commit | e16b12fd49748a5aa7fbdabd6cea13fffbc3bb3d (patch) | |
| tree | 3b1e91f8722da701334e28b87a527913ca91775b /src | |
| parent | c805a38dffbf034fc78815cc6335b51c890046f8 (diff) | |
| parent | 30ba4bd8e2da15ce8e2fe3c8fbc339ee67cb3241 (diff) | |
| download | rust-e16b12fd49748a5aa7fbdabd6cea13fffbc3bb3d.tar.gz rust-e16b12fd49748a5aa7fbdabd6cea13fffbc3bb3d.zip | |
Rollup merge of #63442 - lzutao:vec-bin-search-insert, r=Mark-Simulacrum
Add an example to show how to insert item to a sorted vec Closes #61684 cc #61742 r? @Mark-Simulacrum, @jonas-schievink
Diffstat (limited to 'src')
| -rw-r--r-- | src/libcore/slice/mod.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libcore/slice/mod.rs b/src/libcore/slice/mod.rs index d5a34ea2bd5..ce5af13d4ca 100644 --- a/src/libcore/slice/mod.rs +++ b/src/libcore/slice/mod.rs @@ -1364,6 +1364,17 @@ impl<T> [T] { /// let r = s.binary_search(&1); /// assert!(match r { Ok(1..=4) => true, _ => false, }); /// ``` + /// + /// If you want to insert an item to a sorted vector, while maintaining + /// sort order: + /// + /// ``` + /// let mut s = vec![0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]; + /// let num = 42; + /// let idx = s.binary_search(&num).unwrap_or_else(|x| x); + /// s.insert(idx, num); + /// assert_eq!(s, [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 42, 55]); + /// ``` #[stable(feature = "rust1", since = "1.0.0")] pub fn binary_search(&self, x: &T) -> Result<usize, usize> where T: Ord |
