Каков наиболее эффективный способ поиска объекта по строке с частичным соответствием? - PullRequest
0 голосов
/ 19 мая 2019

У меня есть ряд объектов Task, которые я хотел бы искать по имени. Я могу хранить указатели на них в любой структуре. Я хотел бы разрешить частичное совпадение (например, совпадение «бакалейные товары» «Купить бакалейные товары»).

Я хотел использовать unordered_multimap и equal_range, как показано ниже, но это позволяет только точное соответствие.

class Task_List {
...
std::unordered_multimap<std::string, std::shared_ptr<Task>> tasks_by_name;
...
};
void Task_List::search() {
    // Prompt for string_to_search
    typedef unordered_multimap<string, shared_ptr<Task>>::iterator multi_iter;
    pair<multi_iter, multi_iter> search_results;
    search_results = tasks_by_name.equal_range(string_to_search);
    ...
}

Есть ли способ по-разному определять операторы или задавать определенные функции, чтобы разрешить частичное совпадение? Было бы лучше использовать другую структуру данных или другой подход для эффективного достижения этого?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...