Сравнение векторов и печать bool - PullRequest
0 голосов
/ 24 декабря 2011

Я пытаюсь, чтобы мой код сравнивал два вектора.Оба вектора будут сравниваться с одинаковым количеством int с.Я хочу, чтобы он вывел Yes, если все int в redCups меньше GreenCups.И выведите No, если какая-либо чашка в redCups больше, чем greenCups.

Я занимаюсь этим правильно?

    bool beb = true;

    for (int i = 0; i < numCups; i++)
    {
        if (redCups[i]<greenCups[i])
        {
           beb = false;
        }
    }

    if (beb == true)
    {
        cout << "Yes" << endl;
    }
    if else ( beb == false)
       cout << "No" << endl;

Ответы [ 3 ]

2 голосов
/ 24 декабря 2011

Вы можете использовать алгоритм std::equal для сравнения каждой пары элементов из двух контейнеров.По умолчанию он возвращает true, если все пары равны, но вместо этого легко проверить каждую пару на less или less_equal.

bool beb = std::equal(redCups.begin(), redCups.end(), greenCups.begin(), std::less<int>());
0 голосов
/ 24 декабря 2011
#include <iostream>
#include <vector>
using namespace std;

int main(void)
{
    vector<int> v1;
    vector<int> v2;

    v1.push_back(5);
    v1.push_back(9);
    v1.push_back(4);
    v1.push_back(3);
    v1.push_back(2);

    v2.push_back(10);
    v2.push_back(12);
    v2.push_back(9);
    v2.push_back(4);
    v2.push_back(3);

    bool beb = true;
    for (unsigned int i=0; i<v1.size(); i++)
        if(!(v1[i]<v2[i]))
        {
            beb = false;
            break;
        }

    if (beb == true)
        cout << "Yes" << endl;
    else
        cout << "No" << endl;

    cin.get();
return 0;
}

Я немного изменил ваш код и получил это.Кажется, это работает для меня.

0 голосов
/ 24 декабря 2011

код хороший, но есть небольшая ошибка, вы хотите получить да, если все redCups <<code>greenCups, поэтому нет, если есть redCups > = greenCups.Код:

if (redCups[i] >= greenCups[i]) // you have to decide whether if its > or >=
        {
           beb = false;
        }

Я полагаю, что вы проверили до этого, что redCups и greenCups содержат не менее numCups целых:

if (redCups.size() >= numCups && greenCups.size() >= numCups)
{
    //your code : (bool beb = true; .................... cout << "No" << endl;)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...