测试数组/列表的所有元素是否满足条件的最佳方法

时间:2019-04-04 22:25:26

标签: for-loop optimization

我想测试数组(或列表)中的所有元素是否都满足条件。但是我想以最干净,最优化的方式做到这一点。

我曾经做过这样的事情(例如,在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

但是该解决方案似乎根本没有优化,因为我们使用了计数器,并且必须循环遍历所有元素,而第一个解决方案一旦找到“坏”元素就必须停止。

这是我的问题。 测试数组中所有元素是否都满足条件的最干净,最优化的方法是什么?

0 个答案:

没有答案