Файл такого размера должен легко помещаться в памяти, и вы можете превратить его в std :: set (или, что еще лучше, в хэш-набор, если у вас есть библиотека с этим под рукой) с путями в качестве его элементов. Проверка точного пути будет очень быстрой.
Если вам также нужно искать подпути, единственно полезным может быть отсортированный std :: vector (если вы ищете только префиксы) - или если вы ищете полностью общие подстроки пути, тогда вам все равно придется сканировать весь вектор, но если вам не придется делать это миллион раз, даже это не будет слишком плохо.