Boost 多列索引的多索引复合键

Boost Multi-Index Composite Key for Multiple-Column Indexes

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

我想搜索 "length in [10,20) and width in (20,30]";

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

我需要在记忆中完成那项工作。我看到 Boost Multi-Index 支持 Composite Key;但是我发现好像只支持equal_range搜索,比如"length == 20 and width ==20".

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

multimap>似乎可以满足我的需求,但是代码有点复杂

恐怕Boost.MultiIndex不适合这个;考虑到每个索引(有或没有复合键)都会在元素上产生 linear 顺序,而您需要在此处进行二维排列。我建议看看 Boost.Geometry 的 R-trees.