C++ 比较矢量和打印布尔

C++ 比较矢量和打印布尔,c++,vector,for-loop,C++,Vector,For Loop,我试图让我的代码比较两个向量。两个向量将与相同数量的ints进行比较。如果redCups中的所有ints小于GreenCups,我希望它输出Yes。如果redCups中的任何杯子大于greenCups,则输出No 我处理得对吗 bool beb = true; for (int i = 0; i < numCups; i++) { if (redCups[i]<greenCups[i]) { beb =

我试图让我的代码比较两个向量。两个向量将与相同数量的
int
s进行比较。如果
redCups
中的所有
int
s小于
GreenCups
,我希望它输出
Yes
。如果
redCups
中的任何杯子大于
greenCups
,则输出
No

我处理得对吗

    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;
boolbeb=true;
对于(int i=0;i如果(redCups[i]代码是好的,但有一点错误,那么如果所有
redCups
绿色cups
,您希望得到yes,如果有
红色cups
=
绿色cups
,则得到no。代码:

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;)
}
if(redCups.size()>=numCups&&greenCups.size()>=numCups)
{

//您的代码:(bool beb=true;…..cout您可以使用
std::equal
算法来比较两个容器中的每一对元素。默认情况下,如果所有元素对都相等,则返回
true
,但很容易测试每一对元素的
less
less_equal

bool beb = std::equal(redCups.begin(), redCups.end(), greenCups.begin(), std::less<int>());
bool beb=std::equal(redCups.begin(),redCups.end(),greenCups.begin(),std::less());
#包括
#包括
使用名称空间std;
内部主(空)
{
向量v1;
矢量v2;
v1.推回(5);
v1.推回(9);
v1.推回(4);
v1.推回(3);
v1.推回(2);
v2.推回(10);
v2.推回(12);
v2.推回(9);
v2.推回(4);
v2.推回(3);
布尔贝布=真;

对于(unsigned int i=0;i当您尝试使用某些测试数据集时,您的代码是否正常工作?您的逻辑结构看起来不错,但可能有一些测试是反向的。如果您想检查这一点,您可以返回一个int:1表示真,0表示假,如果其中一个向量包含小于
numCups
int,则返回-1。
#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;
}