数据查找
有一个这样的数据结构: struct node{
int addr;
int len;
};
现有这样的几个节点: a{
addr = 1;
len = 10;
}
b{
addr = 15;
len = 5;
}
c{
addr = 30;
len = 10
}
这几个节点内地址不会重叠。
现在的问题是: 任意给出一个数,要非常快的判断出这个值是否在这几个节点里的地址范围内,并且检索出在哪个节点内。(比如给出17, 立马要检索出是b 这个节点, 如果给出35, 立马检索出是c这个节点, 不能用循环判断), 那用什么数据结构组织这几个节点, 不知道c++的容器,有没有好的方法。
[解决办法]
有序的都可以,STL的map即可 ,定位时可用equal_ranges确定lower和upper
[解决办法]
这是线段树吧。
[解决办法]
可以给你提供点思路:利用STL的equal_ranges确定lower&upper,不用循环那你就判断所取值和两端值的比较来确定他的地址范围。
[解决办法]