我知道之前已经问过这个问题,但答案对于提问者的代码似乎过于明确。
如果认为这是一个无用的重复问题,请随意将其删除或将其标记为重复。
据我所知,我的代码对于我想要实现的内容是正确的,即计算文本文件中指定单词的出现次数。我将不胜感激任何帮助,谢谢。
错误
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;
}
}
答案 0 :(得分:2)
您认为此循环如何终止?:
for (int i = 0; b != ""; i++) {
wordlist.push_back(b);
}