gpt4 book ai didi

ruby - Ruby 中有类似 "lower_bound"的方法吗?

转载 作者:数据小太阳 更新时间:2023-10-29 08:09:15 25 4
gpt4 key购买 nike

在 C++ 中,std::map#lower_bound 查找元素并返回其上的迭代器,或者如果它不在 map 中,则返回 map 中最近元素上的迭代器更小。

对于 Hash 的实例,Ruby 中是否有一种方法具有与 std::map#lower_bound 相同的行为?如果不是,我应该用我的方法扩展 Hash 类,还是有功能组合来实现相同的效果/复杂性?

最佳答案

有一颗 gem rbtree .它像哈希一样将键映射到值,但按键的升序维护其元素。接口(interface)与Hash的接口(interface)几乎相同。

gem install rbtree

示例:

require "rbtree"

rbtree = RBTree["a", 20, "b", 40, "c", 60, "d", 80, "e", 100]

itlow = rbtree.lower_bound("b")
itup = rbtree.upper_bound("d")

rbtree.bound(itlow.first, itup.first) do |k, v|
puts "- #{[k, v]}"
end

输出:

-- ["b", 40]
-- ["c", 60]
-- ["d", 80]

关于ruby - Ruby 中有类似 "lower_bound"的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18655436/

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