gpt4 book ai didi

iterator - 如何将一个值插入到 Rust 中的 BTreeSet 中,然后从它的位置开始得到一个迭代器?

转载 作者:行者123 更新时间:2023-11-29 08:09:42 25 4
gpt4 key购买 nike

我是不是遗漏了什么,或者没有办法让迭代器从 BTreeSet 中新插入的值开始?

BTreeSet::insert只返回一个 bool 值。作为比较,C++ 中 std::mapinsert 方法返回一对迭代器和 bool 值。

可以查找新插入的元素并以这种方式获取迭代器,但效率很低。

这不是 How to lookup from and insert into a HashMap efficiently? 的副本因为我需要一个指向新插入值位置的迭代器。我想获取前面和后面的值(如果存在的话)。

最佳答案

我不确定,但我猜这归结为没有人需要它,所以没有添加。

与此同时,您将需要再次查找最后一个条目以获得迭代器,正如您提到的那样。这也提供了指定迭代器应该移动的方向的机会:

use std::collections::BTreeSet;

fn main() {
let mut set = BTreeSet::new();
set.insert(1);
set.insert(2);
set.insert(3);

set.insert(0);
for i in set.range(0..) {
println!("{}", i);
}
}

关于iterator - 如何将一个值插入到 Rust 中的 BTreeSet 中,然后从它的位置开始得到一个迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39121982/

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