170 похожих чатов

Template <typename Iterator> // struct Range { Iterator begin;

Iterator end;
};

template <typename Iterator, typename Predicate>
static Range<Iterator> findRange(Iterator first, Iterator last, Predicate predicate)
{
bool firstFound = false;
Range<Iterator> scope { first, last };
for (Iterator iter = first; iter != last; ++iter)
{
auto predicateResult { predicate(*iter) };
if (predicateResult && !firstFound)
{
scope.begin = iter;
firstFound = true;
}
else if (!predicateResult && firstFound)
{
scope.end = iter;
break;
}
}
return scope;
}

Заранее извиняюсь за, возможно, глупый вопрос, но ничего похожего в <algorithm> нет? Грубо говоря, функции для нахождения диапазона значений в контейнере, для которых Predicate вернёт true

21 ответов

37 просмотров

find_if?

vladd12- Автор вопроса
d7d1cd
find_if?

Только для одного элемента же

в algorithm нету, я не видел

Ну в принципе непонятно как это реализовать. Вот содержимое контейнера: 1 5 2 7 3 6 9 Я хочу вернуть диапазон на все четные элементы. Но ведь этого сделать нельзя, потому что тут между четными есть нечетные, а "диапазон" - это "от сих до сих".

std::equal_range ?

vladd12- Автор вопроса
d7d1cd
Ну в принципе непонятно как это реализовать. Вот с...

Ну это вы правильно заметили, у меня скорее вырожденный случай, когда в контейнере имеются значения, подчиняющиеся определённым закономерностям. Приведённая мной функция находит только первый диапазон, для поиска всех диапазонов надо что-то другое придумывать

vladd12- Автор вопроса

А ассоциативные нельзя использовать?

Просто в неупорядоченном контейнере некорректно вести разговор о диапазоне..

Придется тогда свой алгоритм использовать. Но написать легко, std::find по первому элементу искомого ренжа, + std::equal начиная с него. В 5 строчек пишется

vladd12- Автор вопроса
Зюльковский Александр
Просто в неупорядоченном контейнере некорректно ве...

К сожалению, там довольно специфическая задача, придётся вдаваться в ненужные детали 😅

Aleksander Spichak
Почему же?

Как определить диапазон в неупорядоченном множестве?

Зюльковский Александр
Как определить диапазон в неупорядоченном множеств...

как итератор на начало и конец внутри какого-то контейнера?)

Aleksander Spichak
как итератор на начало и конец внутри какого-то ко...

Я имею ввиду математическую абстракцию) Диапазон - это последовательность от условно А, до В. Если данные не упорядочены, то что такое диапазон между А и В? Пример: В, Е, С, А, О, Т, В Или я что-то не так понял?

vladd12- Автор вопроса
Aleksander Spichak
Придется тогда свой алгоритм использовать. Но напи...

Не совсем понимаю, как тут прикрутить std::equal... Скорее надо находить итератор на первый элемент искомого ренжа через std::find_if, и начиная с этого итератора давать std::find_if_not. Или я перемудрил? 🧐

vladd12- Автор вопроса
Зюльковский Александр
Я имею ввиду математическую абстракцию) Диапазон -...

Если представить, что элементы В, Е, С в массиве В, Е, С, А, О, Т, В подчиняются определённым закономерностям, то тогда их можно представить как диапазон 😅

vladd12
Если представить, что элементы В, Е, С в массиве В...

Ну если элементы в массиве подчиняются «каким-то» закономерностям, то он упорядоченный, поэтому и спросил, можете ли вы хранить его иначе)

https://github.com/joboccara/pipes?ysclid=lp12tjhe83831861037#take_while

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
11
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
Я короче решил скомпилировать Nim в js, я думал он сработает как обычный транслятор. По итогу он мне создал файл с расширением js, и туда поместил кучу кода Вопрос, что это з...
𝕾𝖍𝖆𝖉𝖊 <suspense>
9
это группа токсиков или тех кто помогает?
Ибрагим
9
мы пытаемся подменить функцию, которая имеет меньше инструкций относительно функции, которой подменяем. https://www.reddit.com/r/jailbreakdevelopers/comments/w06ujy/mshookfun...
Óðinn
6
У кого-нибудь есть под рукой функция кодирования юникода, которая из фразы На русском сделает \u041d\u0430\u0020\u0440\u0443\u0441\u0441\u043a\u043e\u043c ?
Daniil Smolyakov
7
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта