新手在这里。我有两个问题。
首先,我尝试以这种格式初始化我的矢量:
vector<string> v = {"plan", "man", "canal"};
我收到此错误:in C++98 ‘v’ must be initialized by constructor, not by ‘{...}’
构造函数意味着什么?
是否与我初始化下面代码中使用的vector<disliked>
的方式相同?
#include "library/std_lib_facilities.h"
int main()
{
vector<string> disliked;
disliked.push_back("gin");
disliked.push_back("beer");
vector<string> words;
for(string word; cin >> word;)
words.push_back(word);
for(int i = 0; i < words.size(); ++i) {
bool match = false;
for(int x = 0; x < disliked.size(); ++x) {
if(disliked[x] == words[i])
match = true;
}
if(match)
cout << "BLEEP!!" << '\n';
else
cout << words[i] << '\n';
}
}
其次,代码的工作原理如下:
当输入终止时,它接受输入并将它们存储在vector<words>
中,for loop
比较两个向量并返回true或false,具体取决于是否有任何向量元素匹配。
所以我的问题是:有更简单或更清晰的方式来写这个吗?因为记住是否找到匹配似乎是恰当的,因为没有它,嵌套的for循环只打印出两次单词。