初始化和比较向量c ++

时间:2017-03-03 19:05:52

标签: c++ vector constructor compare

新手在这里。我有两个问题。

首先,我尝试以这种格式初始化我的矢量:

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循环只打印出两次单词。

0 个答案:

没有答案