Алгоритм быстрого поиска с std :: vector

    for (std::vector<const std::string>::const_iterator it = serverList.begin(); it != serverList.end(); it++)
    {
        // found a match, store the location
        if (index == *it) // index is a string
        {
            indexResult.push_back(std::distance(serverList.begin(), it)); // std::vector<unsigned int>
        }
    }

Я написал приведенный выше код, чтобы просмотреть вектор строк и вернуть другой вектор с расположение любых «попаданий».

Есть ли способ сделать то же самое, но быстрее? (Если у меня в контейнере 10 000 элементов, это займет некоторое время.) Обратите внимание, что я должен проверить ВСЕ элементы на совпадения и сохранить их положение в контейнере.

Bonus Kudos: Любой знает способ / ссылки о том, как я могу сделать поиск таким образом, чтобы он находил частичные результаты (Пример: поиск «coolro» и сохранение местоположения переменной «coolroomhere»)

9
задан maffo 14 November 2011 в 14:40
поделиться