Можно использовать std::regex
.
В зависимости от размера вашего файла и доступной вам памяти, можно прочитать его либо по строкам, либо целиком в файле std::string
.
Чтобы прочитать файл , вы можете использовать:
std::ifstream t("file.txt");
std::string sin((std::istreambuf_iterator(t)),
std::istreambuf_iterator());
, после чего вы можете сопоставить это, которое на самом деле настраивается для ваших нужд.
std::regex word_regex(",\\s]+");
auto what =
std::sregex_iterator(sin.begin(), sin.end(), word_regex);
auto wend = std::sregex_iterator();
std::vector v;
for (;what!=wend ; wend) {
std::smatch match = *what;
v.push_back(match.str());
}
Идея краевого индекса состоит в том, чтобы связать документы вершин, которые определены их атрибутом _id
(например, collection/key
). Из-за того, как работает двигатель, вы должны предоставить атрибуты _from
и _to
для каждого края ...
... но это не мешает вам добавлять свои собственные атрибуты (и индексировать их)!
Из-за уникальной природы краевых индексов я был вынужден добавить мои собственные значения from_id
и to_id
, которые отражают _from
и _to
соответственно. Добавление к ним хеш-индекса позволило мне быстро согласовать новые, существующие и устаревшие записи.
В качестве альтернативы можно использовать значения name
и number
в качестве значений _key
. Ничто не говорит, что вам нужно , чтобы использовать поставляемую системой _key
. Единственное предостережение - значения _key
и _id
имеют ограничения по .