Тема: Наступний елемент в BTreeMap
Потрібно отримати наступний елемент в BTreeMap.
Намагаюся отримати його ось таким чином:
let next_word = word_indexes.range((Bound::Excluded(word), Bound::Unbounded)).next();
Але отримую помилку:
let next_word = word_indexes.range((Bound::Excluded(word), Bound::Unbounded)).next();
| ^^^^^ cannot infer type of the type parameter `T` declared on the method `range`
|
= note: multiple `impl`s satisfying `std::string::String: Borrow<_>` found in the following crates: `alloc`, `core`:
- impl Borrow<str> for std::string::String;
- impl<T> Borrow<T> for T
where T: ?Sized;
note: required by a bound in `BTreeMap::<K, V, A>::range`
--> /usr/src/debug/rust/rustc-1.78.0-src/library/alloc/src/collections/btree/map.rs:1205:5
help: consider specifying the generic arguments
|
626 | let next_word = word_indexes.range::<T, (std::collections::Bound<&std::string::String>, std::collections::Bound<T>)>((Bound::Excluded(word), Bound::Unbounded)).next();
Розумію, що треба дописати, що пропонує компілятор,
але не розумію, що він має на увазі під типом Т?
BTreeMap складається з <String, (usize, usize)>.
Чи є простіший спосіб отримання наступного елемента в BTreeMap?