Лучший способ проверить, все ли элементы массива / списка удовлетворяют условию - PullRequest
0 голосов
/ 05 апреля 2019

Я хотел бы проверить, все ли элементы в массиве (или списке) удовлетворяют условию.Но я хотел бы сделать это максимально чистым и оптимизированным способом.

Раньше я делал что-то вроде этого (пример в 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.

Так вот мой вопрос.Что является более чистым и наиболее оптимизированным способом проверки, если все элементы в массиве удовлетворяют условию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...