std::default_searcher
| Definido en el archivo de encabezado <functional>
|
||
template< class ForwardIt, class BinaryPredicate = std::equal_to<> > class default_searcher; |
(desde C++17) | |
Un buscador adecuado para uso con Searcher overload of std::search that delegates the search operation to the pre-C++17 standard library's std::search.
default_searcher es CopyConstructible y CopyAssignable.
Funciones miembro
std::default_searcher::default_searcher
<tbody> </tbody> <tbody class="t-dcl-rev "> </tbody><tbody> </tbody> default_searcher( ForwardIt pat_first, ForwardIt pat_last, BinaryPredicate pred = BinaryPredicate()); |
(desde C++17) (hasta C++20) |
|
constexpr default_searcher( ForwardIt pat_first, ForwardIt pat_last, BinaryPredicate pred = BinaryPredicate()); |
(desde C++20) | |
Construye un objeto default_searcher almacenando copias de pat_first, pat_last, y pred
Parámetros
| pat_first, pat_last | - | Un par de iteradores que designan la cadena a buscar. |
| pred | - | Un objeto invocable utilizado para determinar la igualdad. |
Excepciones
Cualquier excepción lanzada por los constructores de copia de BinaryPredicate o ForwardIt.
std::default_searcher::operator()
<tbody> </tbody> <tbody class="t-dcl-rev "> </tbody><tbody> </tbody> template< class ForwardIt2 > std::pair<ForwardIt2, ForwardIt2> operator()( ForwardIt2 first, ForwardIt2 last ) const; |
(desde C++17) (hasta C++20) |
|
template< class ForwardIt2 > constexpr std::pair<ForwardIt2, ForwardIt2> operator()( ForwardIt2 first, ForwardIt2 last ) const; |
(desde C++20) | |
La función miembro llamada por la sobrecarga Searcher de std::search para realizar una búsqueda con este buscador.
Devuelve un par de iteradores i, j, donde i es std::search(first, last, pat_first, pat_last, pred) y j es std::next(i, std::distance(pat_first, pat_last)) a menos que std::search haya devuelto last (no hubo coincidencia), en cuyo caso j también es igual a last.
Parámetros
| first, last | - | Un par de iteradores que designan la cadena a examinar. |
Valor de retorno
Un par de iteradores a la primera posición y a la posición inmediatamente después de la última en [first, last) donde una subsecuencia que se compara igual a [pat_first, pat_last) según lo definido por pred se ubica, o std::make_pair(last, last) de lo contrario.
Ejemplo
#include <iostream>
#include <string>
#include <algorithm>
#include <functional>
int main()
{
std::string in = "Lorem ipsum dolor sit amet, consectetur adipiscing elit,"
" sed do eiusmod tempor incididunt ut labore et dolore magna aliqua";
std::string needle = "pisci";
auto it = std::search(in.begin(), in.end(),
std::default_searcher(
needle.begin(), needle.end()));
if(it != in.end())
std::cout << "La cadena " << needle << " se encuentra en el desplazamiento "
<< it - in.begin() << '\n';
else
std::cout << "La cadena " << needle << " no se encontró\n";
}
Salida:
La cadena pisci se encuentra en el desplazamiento 43
Véase también
| Busca una subsecuencia de elementos. (plantilla de función) | |
(C++17) |
Implementación del algoritmo de búsqueda Boyer-Moore. (plantilla de clase) |
| Implementación del algoritmo de búsqueda Boyer-Moore-Horspool. (plantilla de clase) |