gpt4 book ai didi

rust - 如何获取 BTreeMap 中的最后一项?

转载 作者:行者123 更新时间:2023-11-29 07:52:30 26 4
gpt4 key购买 nike

如果您有键/值对(或键)的排序映射,一个明显的操作是获取第一对或最后一对(或键)。

C++ 的 std::vectorfront()back() 用于此目的。 std::map不会,但是 *map.begin()*map.rbegin()(反向迭代器)可以解决这个问题(假设知道 map 不为空)。

在 Rust 中,获取映射的第一个元素似乎需要 map.iter().next().unwrap() — 丑陋,但考虑到需要进行一些错误检查,这也许是合理的。

我们如何获取最后一个元素?通过遍历所有元素:map.iter().last().unwrap()?

我看到有 Iterator::rev() ,所以 map.iter().rev().next().unwrap() 是一个合理的选择吗?

最佳答案

btree_map::Iter ,由 BTreeMap::iter() 返回,实现 DoubleEndedIterator ,所以确实,要么使用 rev() 的方法可行,要么 you can use the next_back() method directly :

let (key, value) = map.iter().next_back().unwrap();

关于rust - 如何获取 BTreeMap 中的最后一项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33699076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com