LINUX.ORG.RU

поставить позицию чтения на нужный элемент при помощи <algorithm>

 ,


0

2

дана строка:

«abcdefgabcdfsdfsdvevmeveorvorevoervoervokerivekrvekrovekro»

я знаю что есть буква f и что я буду читать после третьей буквы

Обычный способ ясен(псевдокод):

int counter_f = 0;
for(;;)
{
   if (symbol == 'f') {
       counter++
   }
   if (counter == 3) {
   {
      //делаем дело
   } 
}

А как такое сделать при помощи <algorithm>

★★★★★

Чот мне кажется что это вопрос из серии «как забить гвоздь микроскопом». Или ты чего-то не договариваешь.

deep-purple ★★★★★ ()

Вроде такого и писать (n ещё надо проверять):

template <typename InputIt, typename T>
InputIt
find_nth(InputIt first, InputIt last, int n, const T &value)
{
    return std::find_if(first, last, [&n, &value](const T &elem) {
        return (elem == value && --n == 0);
    });
}

xaizek ★★★★★ ()
Ответ на: комментарий от Crocodoom

Выглядит как бесконечный цикл

Верно, там не хватает проверки на конец строки, но это я оставил за кадром.

counter_f и counter это одно и то же?

Ага.

sniper21 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.