我有一些记录,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/