我正在寻找一些 STL、boost 或类似容器,以使用与数据库中使用索引相同的方式来使用如下查询搜索记录:
select * from table1 where field1 starting with 'X';
或者
select * from table1 where field1 like 'X%';
我考虑过使用 std::map,但我不能,因为我需要搜索“以”某些文本开头的字段,而不是“等于”的字段。除此之外,我需要它处理多个字段(例如,每个“记录”有 6 个字段),所以我需要一个单独的 std::map 为每个字段。
我可以创建一个已排序的向量或列表并使用二分搜索(通过读取中间的元素并查看它是否大于或小于“X”,在每一步中打破 2 中的集合),但我想知道是否有一些现成的 -制造了我可以在不重新发明轮子的情况下使用的容器?