我的搜索结果中有一个大文件。我想查找此文件中特定单词周围的单词。 例如,如果我有这样的文件: 一世 上午 去 家 他们 是 去 学校 SAM 是 去 至 午餐
如何在“go”之前和之后获取单词并使用C ++将其保存在哈希中。
答案 0 :(得分:2)
您可以逐字阅读文件,始终将N个单词保留为上下文。您可以将上下文存储在允许滚动上下文的std::deque
中
const int N = 10;
std::deque<std::string> words_before, words_after;
std::string current_word, w;
// prefetch words before and after
for (int i = 0; i < N; ++i) {
std::cin >> w;
words_before.push_back(w);
}
std::cin >> current_word;
for (int i = 0; i < N - 1; ++i) {
std::cin >> w;
words_after.push_back(w);
}
// now process the words and keep reading
while (std::cin >> w) {
words_after.push_back(w);
// save current_word with the words around words_before, words_after
words_before.pop_front();
words_before.push_back(current_word);
current_word = words_after.front();
words_after.pop_front();
}