Как вывести только 1 сообщение, что элемент в первом векторе не находиться во втором

игра корова и быки. элементы в первом векторе задаются рандомно, а во второй человек вводит цифры, все работает кроме вывода, что это число нету в первом векторе (он выводить очень много раз) а нужно только 1 раз.

vector<int> v1(4);
    srand((unsigned)time(NULL));
    for (int i = 0; i < v1.size(); ++i) {
        v1[i] = rand() % 10;
        cout << v1[i] << endl; //для контроля 
    }
    vector<int> v2;
    int x;
    while (cin >> x) 
        v2.push_back(x);
    for (int i = 0; i < v1.size(); ++i){
            if (v2[i] == v1[i])
                cout << "Number " << i+1 << " is " << v2[i] << " bull\n";
            else {
                for (int j = 0; j < v2.size(); ++j) {
                    if (v1[i] == v2[j])
                        cout << "Number " << i + 1 << " is " << v1[i] << " cow\n";
                    else
                        cout << v2[i] << " not contained\n"; // вот здесь, выводит много раз
                }
            }

Ответы (1 шт):

Автор решения: n1tr0xs

Нужно сделать bool переменную:

...
else {
    bool flag=false;
    for (int j = 0; j < v2.size(); ++j) {
        if (v1[i] == v2[j]){
            cout << "Number " << i + 1 << " is " << v1[i] << " cow\n";
            flag=true;
        }
    }
    if(!flag) cout << v2[i] << " not contained\n";
}  
→ Ссылка