我想测试数组(或列表)中的所有元素是否都满足条件。但是我想以最干净,最优化的方式做到这一点。
我曾经做过这样的事情(例如,在c ++中):
vector<unsigned> vct; // put anything in it
bool verified = true;
for (unsigned elmt: vct) {
if (!mycondition) {
verified = false;
break;
}
} // then use verified to check if condition is satisfied for each element
但是随后有人告诉我,您通常希望将verified
初始化为false
,然后将其转换为true
。这让我做到了:
vector<unsigned> vct; // put anything in it
bool verified = false;
unsigned count = 0;
for (unsigned elmt: vct) {
if (mycondition) {
++count;
}
}
if(count == vct.size())
verified = true; // then use verified to check if condition is satisfied for each element
但是该解决方案似乎根本没有优化,因为我们使用了计数器,并且必须循环遍历所有元素,而第一个解决方案一旦找到“坏”元素就必须停止。
这是我的问题。 测试数组中所有元素是否都满足条件的最干净,最优化的方法是什么?