Я ищу какой-то STL, Boost, или аналогичный контейнер, чтобы использовать один и тот же путь индексы используются в базах данных для поиска записи с помощью запроса, как это:контейнер базы данных типа поиска
select * from table1 where field1 starting with 'X';
или
select * from table1 where field1 like 'X%';
Я думал об использовании зОго :: карты, но я не могу, потому что мне нужен искать для полей, которые «начинаются с» каким-то текстом, а не те, которые «равен». Кроме того, мне нужно, чтобы он работал с несколькими полями (каждая «запись» имеет 6 полей, например), поэтому мне понадобится отдельная std :: map для каждого из них.
Я мог бы создать отсортированный вектор или список и использовать бинарный поиск (разбивая набор на 2 на каждом шаге, читая элемент посередине и видя, что он больше или меньше «X»), но мне интересно, это какой-то готовый контейнер, который я мог бы использовать, не изобретая колесо?
Итак, вы хотите TRIE (http://en.wikipedia.org/wiki/Trie)? – kennytm
@KennyTM: да, наверное. –
Возможный дубликат http://stackoverflow.com/questions/1036504/trie-implementation – kennytm