gpt4 book ai didi

c++ - 区间范围树数据结构c++

转载 作者:太空狗 更新时间:2023-10-29 20:12:22 28 4
gpt4 key购买 nike

我有一个要求,我必须根据某些属性值更新图形前端的颜色。属性值有不同的范围....比如 -30 到 -45,-60 到 -80 等等。 ....所以,我需要一个数据结构,我可以在其中存储这些范围(预填充它们)....当我确定点时,我想知道这个点落在 O(1) 中的范围时间或 O(logN) 时间....因此,我的查询将由一个点组成,输出应该是包含该点的唯一范围...

我对范围树和线段树感到困惑....我想在 c++ STL 映射之上构建树。

最佳答案

你需要的是区间树。 http://en.wikipedia.org/wiki/Interval_tree .不幸的是你不能使用 std::set<>得到 O(log N) 插入、删除和查询,因为树节点需要包含额外的数据。您可以在这里阅读它们 http://syedwaqarahmad.webs.com/documents/t.cormen-_introduction_to_algorithms_3rd_edition.pdf第 14.3 章。

相反,您可以使用 boost。它有区间容器库。

http://www.boost.org/doc/libs/1_46_1/libs/icl/doc/html/index.html

关于c++ - 区间范围树数据结构c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28053727/

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