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 bsica) almacena y manipula secuencias de objetos similares a caracteres char, que son objetos no-array de tipo de diseo estndar trivial . La clase no depende ni del tipo de carcter ni de la naturaleza de las operaciones sobre ese tipo. Las definiciones de las operaciones se suministran mediante el parmetro de plantilla Traits --una especializacin 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 bsica (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 carcter comunes:
Definido en el encabezado
<string> | |
| Tipo | Definicin |
| 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>
|
Parmetros de plantilla
| CharT | - | Tipo de carcter. |
| Traits | - | Clase de rasgos que especifica las operaciones sobre el tipo de carcter. |
| Allocator | - | Tipo de asignador (Allocator) utilizado para asignar almacenamiento interno. |
Tipos miembro
| Tipo miembro | Definicin | ||||
traits_type
|
Traits
| ||||
value_type
|
CharT
| ||||
allocator_type
|
Allocator
| ||||
size_type
|
| ||||
difference_type
|
| ||||
reference
|
Allocator::reference (hasta C++11)value_type& (desde C++11)
| ||||
const_reference
|
Allocator::const_reference (hasta C++11)const value_type& (desde C++11)
| ||||
pointer
|
Allocator::pointer (hasta C++11)std::allocator_traits<Allocator>::pointer (desde C++11)
| ||||
const_pointer
|
Allocator::const_pointer (hasta C++11)std::allocator_traits<Allocator>::const_pointer (desde C++11)
| ||||
iterator
|
IteradorDeAccesoAleatorioLegado | ||||
const_iterator
|
IteradorDeAccesoAleatorioLegado constante | ||||
reverse_iterator
|
std::reverse_iterator<iterator>
| ||||
const_reverse_iterator
|
std::reverse_iterator<const_iterator>
|
Funciones miembro
Construye una cadena basic_string (funcin miembro pblica) | |
(destructor) |
Destruye la cadena, desasignando almacenamiento interno si se utiliza. (funcin miembro pblica) |
| Asigna valores a la cadena (funcin miembro pblica) | |
| Asigna caracteres a una cadena (funcin miembro pblica) | |
| Devuelve el asignador asociado (funcin miembro pblica) | |
Acceso a elementos | |
| Accede al carcter especificado con comprobacin de lmites (funcin miembro pblica) | |
| Accede al carcter especificado (funcin miembro pblica) | |
(C++11) |
Accede al primer carcter (funcin miembro pblica) |
(C++11) |
Accede al ltimo carcter (funcin miembro pblica) |
| Devuelve un puntero al primer carcter de una cadena (funcin miembro pblica) | |
| Devuelve una versin de la cadena que es un array de caracteres no modificable de C estndar (funcin miembro pblica) | |
(C++17) |
Devuelve una vista sobre cadena no modificable de la cadena completa. (funcin miembro pblica) |
Iteradores | |
(C++11) |
Devuelve un iterador al principio (funcin miembro pblica) |
(C++11) |
Devuelve un iterador al final (funcin miembro pblica) |
(C++11) |
Devuelve un iterador inverso al principio (funcin miembro pblica) |
(C++11) |
Devuelve un iterador inverso al final (funcin miembro pblica) |
Capacidad | |
| Comprueba si la cadena est vaca (funcin miembro pblica) | |
| Devuelve el nmero de caracteres (funcin miembro pblica) | |
| Devuelve el nmero mximo de caracteres (funcin miembro pblica) | |
| Reserva almacenamiento (funcin miembro pblica) | |
| Devuelve el nmero de caracteres que pueden almacenarse en el almacenamiento asignado actual (funcin miembro pblica) | |
(C++11) |
Reduce el uso de memoria liberando memoria no utilizada. (funcin miembro pblica) |
Operaciones | |
| Borra el contenido (funcin miembro pblica) | |
| Inserta caracteres (funcin miembro pblica) | |
| Borra caracteres (funcin miembro pblica) | |
| Aade un carcter al final (funcin miembro pblica) | |
(C++11) |
Elimina el ltimo carcter (funcin miembro pblica) |
| Aade caracteres al final (funcin miembro pblica) | |
| Aade caracteres al final (funcin miembro pblica) | |
| Compara dos cadenas (funcin miembro pblica) | |
(C++20) |
Comprueba si la cadena comienza con el prefijo dado. (funcin miembro pblica) |
(C++20) |
Comprueba si la cadena termina con el sufijo dado (funcin miembro pblica) |
| Reemplaza todas las apariciones de los caracteres especificados (funcin miembro pblica) | |
| Devuelve una subcadena (funcin miembro pblica) | |
| Copia caracteres (funcin miembro pblica) | |
| Cambia el nmero de caracteres almacenados (funcin miembro pblica) | |
| Intercambia el contenido (funcin miembro pblica) | |
Bsqueda | |
| Encuentra caracteres en la cadena (funcin miembro pblica) | |
| Encuentra la ltima aparicin de una subcadena (funcin miembro pblica) | |
| Encuentra la primera aparicin de caracteres (funcin miembro pblica) | |
| Encuentra la primera ausencia de caracteres (funcin miembro pblica) | |
| Encuentra la ltima aparicin de caracteres (funcin miembro pblica) | |
| Encuentra la ltima ausencia de caracteres (funcin miembro pblica) | |
Constantes | |
[esttico] |
Valor especial. El significado exacto depende del contexto (constante miembro pblica esttica) |
Funciones no miembro
| Concatena dos cadenas, o una cadena y un carcter (plantilla de funcin) | |
| Comparacin lexicogrfica de dos cadenas de texto (plantilla de funcin) | |
| Especializa el algoritmo std::swap (plantilla de funcin) | |
| Borra todos los elementos que satisfacen un criterio especfico. (plantilla de funcin) | |
Entrada/salida | |
| Realiza secuencia de E/S en cadenas de texto (plantilla de funcin) | |
| Lee datos de un flujo de E/S a una cadena (funcin) | |
Conversiones numricas | |
(C++11)(C++11)(C++11) |
Convierte una cadena a un entero con signo (funcin) |
(C++11)(C++11) |
Convierte una cadena a un entero sin signo (funcin) |
(C++11)(C++11)(C++11) |
Convierte una cadena en un valor de punto flotante (funcin) |
(C++11) |
Convierte un valor de punto flotante o entero a una cadena string. (funcin) |
(C++11) |
Convierte un valor de punto flotante o entero a una cadena wstring. (funcin) |
Literales
Definido en el espacio de nombres
std::literals::string_literals | |
(C++14) |
Convierte un literal de array de caracteres a basic_string (funcin) |
Clases auxiliares
(C++11)(C++11)(C++11)(C++11) |
Apoyo de generacin de dispersin para cadenas (especializacin de plantilla de clase) |