Я хотел бы проверить, все ли элементы в массиве (или списке) удовлетворяют условию.Но я хотел бы сделать это максимально чистым и оптимизированным способом.
Раньше я делал что-то вроде этого (пример в 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
Но это решение, похоже, не оптимизировано вообще, потому что мы используем счетчик, и мы должны циклически проходить по всем элементам, пока первое решение останавливается, как только оно находит «плохое»"element.
Так вот мой вопрос.Что является более чистым и наиболее оптимизированным способом проверки, если все элементы в массиве удовлетворяют условию?