首页 > 解决方案 > 测试数组/列表的所有元素是否满足条件的最佳方法

问题描述

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

我曾经做过这样的事情(以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

但是后来有人告诉我,您通常希望初始化verifiedfalse然后将其转换为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

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

所以这是我的问题。测试数组中的所有元素是否满足条件的更清洁和最优化的方法是什么?

标签: for-loopoptimization

解决方案


推荐阅读