close
Espacios de nombres
Variantes

std::default_searcher

De cppreference.com
 
 
Biblioteca de servicios
 
Objetos función
Envoltorios de funciones
(C++11)
(C++11)
Aplicación parcial de funciones
(C++20)
(C++11)
Invocación de funciones
(C++17)(C++23)
Objeto función identidad
(C++20)
Envoltorios de referencias
(C++11)(C++11)
Envoltorios de operador transparentes
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
Negadores
(C++17)
Buscadores
Comparadores restringidos
Vinculadores y adaptadores antiguos
(hasta C++17)
(hasta C++17)
(hasta C++17)
(hasta C++17)
(hasta C++17)(hasta C++17)(hasta C++17)(hasta C++17)
(hasta C++20)
(hasta C++20)
(hasta C++17)(hasta C++17)
(hasta C++17)(hasta C++17)

(hasta C++17)
(hasta C++17)(hasta C++17)(hasta C++17)(hasta C++17)
(hasta C++20)
(hasta C++20)
 
<tbody> </tbody>
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) [editar]
Implementación del algoritmo de búsqueda Boyer-Moore.
(plantilla de clase) [editar]
Implementación del algoritmo de búsqueda Boyer-Moore-Horspool.
(plantilla de clase) [editar]