for-loop - 测试数组/列表的所有元素是否满足条件的最佳方法
问题描述
我想测试数组(或列表)中的所有元素是否满足条件。但我想以最干净和最优化的方式做到这一点。
我曾经做过这样的事情(以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
但是这个解决方案似乎根本没有优化,因为我们使用了一个计数器,我们必须循环遍历所有元素,而第一个解决方案一旦找到“坏”元素就停止。
所以这是我的问题。测试数组中的所有元素是否满足条件的更清洁和最优化的方法是什么?
解决方案
推荐阅读
- mongodb - 将来自不同主机的目录挂载为 mongo docker 容器中的卷
- java - java lambda中的中断语句
- netty - 与 Netty 处理程序相比,使用 LMAX Disruptor 进行事件处理会降低性能
- python - 如何让机器人显示它删除的消息的内容
- webpack - 启动项目的Webpack不同版本问题
- arrays - 如何在golang中压缩字符串并返回字节数组
- java - 求和运算期间 Cloud Firestore 中的值重复
- ios - 尽管 Apple 语言代码在 UserDefaults 中设置为 en,但 iOS 英语数字会自动更改为阿拉伯语
- prometheus - 查询最近 1 分钟的平均响应时间
- c# - 使用 .net/c# 对 Web 服务/SOAP 服务设置/应用安全策略