Подсчитайте, сколько соседних элементов удовлетворяют предикатуC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Подсчитайте, сколько соседних элементов удовлетворяют предикату

Сообщение Anonymous »

Учитывая std :: vector с именем v и предикат p , который берет два элемента и возвращает Bool , какой идиоматический способ подсчитать, сколько смежных элементов в v удовлетворяет P ? PrettyPrint-Override ">

Код: Выделить всё

auto count = 0;

for (auto index = 1UZ; index < v.size(); ++index)
{
if (p(v[index - 1], v[index]))
{
++count;
}
}
он может выглядеть красивее, используя std :: views :: pairwise из диапазонов библиотека:

Код: Выделить всё

for (const auto [left_element, right_element] : std::views::pairwise(v) | std::views::as_const)
{
if (p(left_element, right_element))
{
++count;
}
}
Но это та же самая идея ...
Мне известно о std :: addracent_find и std :: addracent_difference , но не вижу, как их использовать для этого.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -predicate
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»