c++ - Boost 多列索引的多索引复合键

标签 c++ search boost boost-multi-index

我有一些记录,pattern是(id, length, width);

我想搜索“长度在 [10,20] 中,宽度在 (20,30] 中”;

如果我使用关系数据库,我可以在长度和宽度上创建一个多列索引。

我需要在内存中完成这项工作。我看到 Boost Multi-Index 支持 Composite Key;但我发现它似乎只支持 equal_range 搜索,比如“length == 20 and width ==20”。

添加 boost Multi-Index 支持查询,如 [10,20) 和宽度 (20,30] ?

multimap>似乎可以满足我的要求,但是编码有点复杂。

最佳答案

恐怕 Boost.MultiIndex 不适合这个;考虑到每个索引(有或没有复合键)都会在元素上产生一个线性顺序,而你在这里想要一个二维排列。我建议看看 Boost.Geometry 的 R-trees .

关于c++ - Boost 多列索引的多索引复合键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35778119/

相关文章:

c - 在十六进制中搜索特定字节

java - 搜索未返回对象

c++ - 为静态链接构建 Boost (MinGW)

linux - 配置:错误:找不到库的版本

c++ -/usr/bin/ld : cannot find -llibeststring. 一个

java - 痛饮 : How to rename generated Java code according to a regex?

c++ - 在虚拟地址空间中使用内存映射文件

Java:在字符串中查找字符串

c++ - 如何使用 boost.log 写入文件?

c++ - OpenCV 2.3 Mat 访问单 channel 矩阵元素