检查vector less中的元素是否少于其他向量

时间:2015-11-09 08:32:12

标签: c++ c++11 vector

我有两个vectors integers。我想检查所有第一个vector元素是否小于或等于另一个vector中的对等元素。

std::vector<int> v1{1,2,3,4,5};
std::vector<int> v2{8,8,8,8,8};
auto check(true);
for(size_t i=0;i<v1.size();++i){
    if(v1[i]>v2[i]){
        check=false;
        break;
    }  
}
if(check){
    std::cout << "OK";
}

有没有更简洁的方法来做它像std函数或somthing?

1 个答案:

答案 0 :(得分:11)

向量的词法顺序就足够了:

const bool check = v1 <= v2;

<击>

您可以使用(在C ++ 14中)

const bool ok = std::equal(std::begin(v1), std::end(v1),
                           std::begin(v2), std::end(v2),
                           [](int a, int b)->bool {return a <= b; });

在C ++ 11中,您必须手动检查size并删除std::end(v2)