这是一项来自《使用 C++ 的原则和实践》的练习你应该把一个你不喜欢的词“哔”出来。我让代码运行,但在我这样做之前我写了下面的代码并且它崩溃了。我更好奇为什么它会崩溃?是if(words[i-1]==dislike)吗?如果是这样,为什么底部检查不使程序崩溃?这可能是一个简单的答案,但我只是很想知道。
#include <iostream>
#include "std_lib_facilities.h"
using namespace std;
int main()
{
vector<string> words;
string temp;
string dislike = "tuggo";
while(cin>>temp)
words.push_back(temp);
cout << "Number of words: " << words.size() << endl;
sort(words.begin(),words.end());
for(int i = 0; i<words.size(); ++i)
{
if(words[i-1]==dislike)
cout << "BEEP DONT SAY TUGGO WHOOPS I SAID TUGG--BEEP";
else if(i==0 || words[i-1]!=words[i])
cout << words[i] << endl;
}
keep_window_open();
}