-1

この質問が以前に尋ねられたことは理解していますが、回答は質問者のコードに対してあまりにも具体的であるように思われました。

これが役に立たない重複した質問と見なされる場合は、遠慮なく削除するか、重複としてマークしてください。

私が知る限り、私のコードは、テキスト ファイル内の指定された単語の出現回数を数えている、私が達成しようとしているものに対して正しいです。助けていただければ幸いです、ありがとう。

エラー

    This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

私のmain.cppの一部(問題の原因)

    //vectors to hold words from two files
vector<string> wordlist;
vector<string> file;
vector<int> searchVec;

//while a is not an empty string
while (a != "") {

    //getNextWord() returns each word in order from a text file
    //a is a play script, b is a list of words to search for
    a = infile.getNextWord();
    b = infile2.getNextWord();

    file.push_back(a);

    //counts total words in play script
    count++;

    //increments and adds each word from the list of words to search for to the vector
    for (int i = 0; b != ""; i++) {

        wordlist.push_back(b);

    }

    //cycles through words to search for
    for (int j = 0; j < wordlist.size(); j++) {

        //cycle through te play script
        for (int k = 0; k < file.size(); k++) {

            //if the current play script word is the same as the test word, up the count
            if (file[k] == wordlist[j]) {

                searchCount++;

            }

        }

        //print appropriate output, re-initialise the count to 0 for the next word
        cout << "The word " << wordlist[j] << " occurs " << searchCount << " times." << endl;

        searchCount = 0;

    }

}
4

1 に答える 1

2

このループはどのように終了すると思いますか?:

for (int i = 0; b != ""; i++) {

    wordlist.push_back(b);

}
于 2014-11-15T17:45:49.090 に答える