Espacios de nombres
Variantes
Acciones

std::basic_string

De cppreference.com
< cpp‎ | string
 
 
 
std::basic_string
 
Definido en el archivo de encabezado <string>
template<

    typename CharT,
    typename Traits = std::char_traits<CharT>,
    typename Allocator = std::allocator<CharT>

> class basic_string;
(1)
namespace pmr {

    template <typename CharT, typename Traits = std::char_traits<CharT>>
    using basic_string = std::basic_string< CharT, Traits,
                                            std::polymorphic_allocator<CharT>>

}
(2) (desde C++17)

La plantilla de clase basic_string (cadena básica) almacena y manipula secuencias de objetos similares a caracteres char, que son objetos no-array de tipo de diseño estándar trivial . La clase no depende ni del tipo de carácter ni de la naturaleza de las operaciones sobre ese tipo. Las definiciones de las operaciones se suministran mediante el parámetro de plantilla Traits --una especialización de std::char_traits o una clase de rasgos compatibles. Traits::char_type y CharT deben nombrar el mismo tipo; de otra forma, el programa está mal formado.

Los elementos de una cadena básica (basic_string) se almacenan contiguamente, es decir, para un basic_string s, &*(s.begin() + n) == &*s.begin() + n para cualquier n en [0, s.size()), o, de manera equivalente, un puntero a s[0] puede pasarse a funciones que esperan un puntero al primer elemento de un CharT[] terminado en nulo (desde C++11).

std::basic_string satisface los requerimientos de AllocatorAwareContainer, SequenceContainer y ContiguousContainer (desde C++17)

Se proporcionan varias definiciones de tipo (typedefs) para tipos de carácter comunes:

Definido en el archivo de encabezado <string>
Tipo Definición
std::string std::basic_string<char>
std::wstring std::basic_string<wchar_t>
std::u8string (C++20) std::basic_string<char8_t>
std::u16string (C++11) std::basic_string<char16_t>
std::u32string (C++11) std::basic_string<char32_t>
std::pmr::string (C++17) std::pmr::basic_string<char>
std::pmr::wstring (C++17) std::pmr::basic_string<wchar_t>
std::pmr::u8string (C++20) std::pmr::basic_string<char8_t>
std::pmr::u16string (C++17) std::pmr::basic_string<char16_t>
std::pmr::u32string (C++17) std::pmr::basic_string<char32_t>

Contenido

[editar] Parámetros de plantilla

CharT - Tipo de carácter.
Traits - Clase de rasgos que especifica las operaciones sobre el tipo de carácter.
Allocator - Tipo de asignador (Allocator) utilizado para asignar almacenamiento interno.

[editar] Tipos miembro

Tipo miembro Definición
traits_type Traits
value_type CharT
allocator_type Allocator [editar]
size_type
Allocator::size_type (hasta C++11)
std::allocator_traits<Allocator>::size_type (desde C++11)
[editar]
difference_type
Allocator::difference_type (hasta C++11)
std::allocator_traits<Allocator>::difference_type (desde C++11)
[editar]
reference Allocator::reference (hasta C++11)
value_type& (desde C++11) [editar]
const_reference Allocator::const_reference (hasta C++11)
const value_type& (desde C++11) [editar]
pointer Allocator::pointer (hasta C++11)
std::allocator_traits<Allocator>::pointer (desde C++11) [editar]
const_pointer Allocator::const_pointer (hasta C++11)
std::allocator_traits<Allocator>::const_pointer (desde C++11) [editar]
iterator IteradorDeAccesoAleatorioLegado [editar]
const_iterator IteradorDeAccesoAleatorioLegado constante [editar]
reverse_iterator std::reverse_iterator<iterator> [editar]
const_reverse_iterator std::reverse_iterator<const_iterator> [editar]

[editar] Funciones miembro

Construye una cadena basic_string
(función miembro pública) [editar]
(destructor)
Destruye la cadena, desasignando almacenamiento interno si se utiliza.
(función miembro pública)
Asigna valores a la cadena
(función miembro pública) [editar]
Asigna caracteres a una cadena
(función miembro pública) [editar]
Devuelve el asignador asociado
(función miembro pública) [editar]
Acceso a elementos
Accede al carácter especificado con comprobación de límites
(función miembro pública) [editar]
Accede al carácter especificado
(función miembro pública) [editar]
(C++11)
Accede al primer carácter
(función miembro pública) [editar]
(C++11)
Accede al último carácter
(función miembro pública) [editar]
Devuelve un puntero al primer carácter de una cadena
(función miembro pública) [editar]
Devuelve una versión de la cadena que es un array de caracteres no modificable de C estándar
(función miembro pública) [editar]
Devuelve una vista sobre cadena no modificable de la cadena completa.
(función miembro pública) [editar]
Iteradores
Devuelve un iterador al principio
(función miembro pública) [editar]
(C++11)
Devuelve un iterador al final
(función miembro pública) [editar]
Devuelve un iterador inverso al principio
(función miembro pública) [editar]
Devuelve un iterador inverso al final
(función miembro pública) [editar]
Capacidad
Comprueba si la cadena está vacía
(función miembro pública) [editar]
Devuelve el número de caracteres
(función miembro pública) [editar]
Devuelve el número máximo de caracteres
(función miembro pública) [editar]
Reserva almacenamiento
(función miembro pública) [editar]
Devuelve el número de caracteres que pueden almacenarse en el almacenamiento asignado actual
(función miembro pública) [editar]
Reduce el uso de memoria liberando memoria no utilizada.
(función miembro pública) [editar]
Operaciones
Borra el contenido
(función miembro pública) [editar]
Inserta caracteres
(función miembro pública) [editar]
Borra caracteres
(función miembro pública) [editar]
Añade un carácter al final
(función miembro pública) [editar]
(C++11)
Elimina el último carácter
(función miembro pública) [editar]
Añade caracteres al final
(función miembro pública) [editar]
Añade caracteres al final
(función miembro pública) [editar]
Compara dos cadenas
(función miembro pública) [editar]
Comprueba si la cadena comienza con el prefijo dado.
(función miembro pública) [editar]
(C++20)
Comprueba si la cadena termina con el sufijo dado
(función miembro pública) [editar]
Reemplaza todas las apariciones de los caracteres especificados
(función miembro pública) [editar]
Devuelve una subcadena
(función miembro pública) [editar]
Copia caracteres
(función miembro pública) [editar]
Cambia el número de caracteres almacenados
(función miembro pública) [editar]
Intercambia el contenido
(función miembro pública) [editar]
Búsqueda
Encuentra caracteres en la cadena
(función miembro pública) [editar]
Encuentra la última aparición de una subcadena
(función miembro pública) [editar]
Encuentra la primera aparición de caracteres
(función miembro pública) [editar]
Encuentra la primera ausencia de caracteres
(función miembro pública) [editar]
Encuentra la última aparición de caracteres
(función miembro pública) [editar]
Encuentra la última ausencia de caracteres
(función miembro pública) [editar]

Constantes

[estático]
Valor especial. El significado exacto depende del contexto
(constante miembro pública estática) [editar]

[editar] Funciones no miembro

Concatena dos cadenas, o una cadena y un carácter
(plantilla de función) [editar]
Comparación lexicográfica de dos cadenas de texto
(plantilla de función) [editar]
Especializa el algoritmo std::swap
(plantilla de función) [editar]
Borra todos los elementos que satisfacen un criterio específico.
(plantilla de función) [editar]
Entrada/salida
Realiza secuencia de E/S en cadenas de texto
(plantilla de función) [editar]
Lee datos de un flujo de E/S a una cadena
(función) [editar]
Conversiones numéricas
(C++11)(C++11)(C++11)
Convierte una cadena a un entero con signo
(función) [editar]
(C++11)(C++11)
Convierte una cadena a un entero sin signo
(función) [editar]
(C++11)(C++11)(C++11)
Convierte una cadena en un valor de punto flotante
(función) [editar]
(C++11)
Convierte un valor de punto flotante o entero a una cadena string.
(función) [editar]
Convierte un valor de punto flotante o entero a una cadena wstring.
(función) [editar]

[editar] Literales

Definido en el espacio de nombres std::literals::string_literals
Convierte un literal de array de caracteres a basic_string
(función) [editar]

[editar] Clases auxiliares

Apoyo de generación de dispersión para cadenas
(especialización de plantilla de clase) [editar]

[editar] Guías de deducción(desde C++17)