我想访问在
在C++中,我会使用
Vec<i32>
中最大值后面的元素。我需要这样做:let v = vec![1, 3, 2];
let it = v.iter().max_element();
assert_eq!(Some(&2), it.next());
在C++中,我会使用
std::max_element
函数,然后只需增加迭代器(根据当时的冒险心情是否进行边界检查)。而Rust中的max
方法只返回元素的引用,这对我的用例来说不够好。
我唯一想到的解决办法是使用enumerate
获取项目的索引-但与C++方式相比,这似乎很繁琐。
我更喜欢标准库中有的东西。
这个示例很简单 - 实际上我想连接到最高值,然后从那个点开始循环整个容器(可能使用cycle()
或类似的东西)。
max_element
的算法(我发现,一旦你进行了心理转换,大多数问题使用 Rust 类似的迭代器比 C++ 类似的迭代器更容易解决)。 - trentcycle()
或类似的东西)。 - Leśny Rumcajs