How to use std::search_n to search for a consecutive sequence of N identical elements in C++

1 Answer

0 votes
#include <iostream>
#include <algorithm>
#include <iterator>
 
template <class Container, class Size, class T>
bool has_consecutive_values(const Container& c, Size N, const T& val) {
    return std::search_n(std::begin(c), std::end(c), N, val) != std::end(c);
}
 
int main()
{
   const char sequence[] = "1101001000100100011100101010";
 
   std::cout << std::boolalpha;
   std::cout << "Has 4 consecutive zeros? "
             << has_consecutive_values(sequence, 4, '0') << '\n';
   std::cout << "Has 3 consecutive zeros? "
             << has_consecutive_values(sequence, 3, '0') << '\n';
}


 
/*
run:
   
Has 4 consecutive zeros? false
Has 3 consecutive zeros? true
  
*/

 



answered Dec 15, 2024 by avibootz
...