-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 回答