Я ищу какой-нибудь контейнер STL, Boost или аналогичный, чтобы использовать те же индексы, которые используются в базах данных для поиска записей с помощью запроса, подобного следующему:
select * from table1 where field1 starting with 'X';
или
select * from table1 where field1 like 'X%';
Я думал об использовании std :: map, но не могу, потому что мне нужно искать поля, которые «начинаются» с некоторого текста, а не те, которые «равны». Кроме того, мне нужно, чтобы он работал с несколькими полями (например, каждая «запись» имеет 6 полей), поэтому для каждого из них мне понадобится отдельный std :: map.
Я мог бы создать отсортированный вектор или список и использовать бинарный поиск (разбивая набор в 2 на каждом шаге, читая элемент в середине и проверяя, больше или меньше он 'X'), но мне интересно, есть ли какой-нибудь готовый контейнер, который я мог бы использовать, не изобретая колесо?