我有两个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?
答案 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)