0

結果に大きなファイルがあります。このファイル内の特定の単語の前後にある単語を探したいと思います。たとえば、次のようなファイルがあるとします: I am going home they are going school sam is going to lunch

「行く」前後の単語を取得し、C++ を使用してハッシュに保存するにはどうすればよいですか。

4

1 に答える 1

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();
}
于 2013-03-12T20:14:02.190 に答える