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

Hum*_*awi 1 c++ vector c++11

我有两个vectorsintegers.我想检查所有第一个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";
}
Run Code Online (Sandbox Code Playgroud)

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

Jar*_*d42 11

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

const bool check = v1 <= v2;
Run Code Online (Sandbox Code Playgroud)

你可以使用(在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; });
Run Code Online (Sandbox Code Playgroud)

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