私はプログラミングの初心者ですが、動作するコードを書きましたが、スケーラブルにすることに興味があります。C++の複数条件IF文をループする方法
次のコードは、ベクターリストの1つの単語が別のベクターリストの単語と一致するかどうかを確認します。
if (words[i] != dislike[0] && words[i] != dislike[1] && words[i] != dislike[2] && words[i] != dislike[3]) //check for disliked words
cout << words[i] << '\n';
はようvisibile、コードは、単語単位で繰り返すことによって仕事をしていませんので、私は私の第二のベクターリスト内の単語のnubmerを変更した場合、私は、IF文に追加する必要があります。
さらに最適なソリューションはありますか?私は何時間もこれを理解しようとしていたが、私は運がなかった。おかげさまで
P.S.以下は私のフルコードです。
int main()
{
// words we dislike
vector<string>dislike = { "broccoli", "coke", "potatoes", "water" };
//take input from user
vector<string> words;
for (string temp; cin >> temp;) // read whitespace-separated words
words.push_back(temp); // put into vector
//give output
cout << "Number of words: " << words.size() << '\n';
//sort(words); // DONT sort the words
for (int i = 0; i<words.size(); ++i) //go through your words vector
{
if (i == 0 || words[i - 1] != words[i])//remove repeating words
{
if (words[i] != dislike[0] && words[i] != dislike[1] && words[i] != dislike[2] && words[i] != dislike[3]) //check for dislike
cout << words[i] << '\n';
else
cout << "BlEEP!\n"; //print if word is disliked*/
}
}
return 0;
}
「嫌い」のための特定のサイズを仮定するのではなく、それをループします。あなたがそれをした後、単にそれを実行し、 'std :: find'を使用してください。 – StoryTeller
ありがとう。 'std :: find'は私にとっては新しいものなので、私は研究してやり直します。 – Newskooler
なぜstd :: uniqueを使用しないのですか? – Dmitriy