Plantilla string
La plantilla de clase string
almacena y manipula secuencias de variables tipo char
.
- Funcionamiento
- Eficiencia
- Funciones miembro
- Funciones no miembro
- Ejemplos
Funcionamiento
Imagina que con string
generamos un arreglo de tamaño dinámico, es decir, cuyo tamaño no tenemos que declarar al inicio, y las variables que almacenan son de tipo char
, de esta forma podemos escribir palabras fácilmente.
Los elementos en una plantilla tipo string
son almacenados de manera contigua, de hecho, la palabra string se traduce al español como cadena. Imagina esta plantilla, como una cadena de caracteres.
Eficiencia
La eficiencia de la plantilla string
es muy aproximada a la de la clase vector
.
Para acceso aleatorio a un elemento | constante | \(O(l)\) |
Insertar o remover un elemento al final del contenedor | constante | \(O(l)\) |
Insertar o remover un elemento | lineal en función de la distancia a la que esté del final | \(O(n)\) |
Funciones miembro
Función | Definición |
---|---|
(constructor) | Construye un elemento string |
Operador = |
Asigna valores al string |
get_allocator |
Regresa el asignador asociado |
Acceso a elementos | |
at |
Accede al carácter especificado revisando límites |
Operadores [ ] |
Accede al carácter especificado |
front |
Accede al primer carácter |
back |
Accede al último carácter |
data |
Regresa un puntero al primer carácter del string |
c_str |
Devuelve una versión no modificable tipo arreglo del string para C estándar |
Iteradores | |
begin cbegin (C++11) |
Devuelve un iterador al principio de la cadena |
end cend (C++11) |
Devuelve un iterador al final de la cadena |
rbegin crbegin (C++11) |
Devuelve un iterador reverso al principio de la cadena |
rend crend (C++11) |
Devuelve un iterador reverso al final de la cadena |
Capacidad | |
empty |
Devuelve verdadero si la cadena está vacía |
size length |
Devuelve el número de caracteres |
max_size |
Regresa el máximo número de caracteres posibles |
reserve |
Reserva almacenamiento |
capacity |
Regresa el número de caracteres que pueden ser almacenados en la memoria actual reservada |
shrink_to_fit (C++11) |
Reduce el uso de memoria liberando la memoria no utilizada |
Operaciones | |
clear |
Limpia los contenidos |
insert |
Inserta caracteres |
erase |
Borra caracteres |
push_back |
Agrega un carácter al final de la cadena |
pop_back (C++11) |
Borra el último carácter |
append |
Agrega caracteres al final de la cadena |
Operador += |
Agrega caracteres al final de la cadena |
compare |
Compara dos cadenas |
replace |
Reemplaza una parte especificada de la cadena |
substr |
Devuelve una sub cadena |
copy |
Copia caracteres |
resize |
Cambia la cantidad de caracteres almacenados |
swap |
Intercambia contenidos de dos cadenas |
Búsqueda | |
find |
Encuentra caracteres en la cadena |
rfind |
Encuentra la última coincidencia de una subcadena |
find_first_of |
Encuentra la primera coincidencia de caracteres |
find_first_not_of |
Encuentra la primera ausencia de caracteres |
find_last_of |
Encuentra la última coincidencia de caracteres |
find_last_not_of |
Encuentra la última ausencia de caracteres |
Funciones no miembro
Función | Definición |
---|---|
Operadores == , != , < , <= , > , >= |
Compara lexicográficamente dos cadenas |
Operador + |
Concatena dos cadenas o una cadena y una variable char |
Entrada/salida | |
Operador << |
Ejecuta una salida de datos de una cadena |
Operador >> |
Ejecuta una entrada de datos a una cadena |
Conversiones numéricas | |
stoi (C++11) stol (C++11) stoll (C++11) |
Convierte una cadena en un entero signado |
stoul (C++11) stoull (C++11) |
Convierte una cadena en un entero no signado |
stof (C++11) stod (C++11) stold (C++11) |
Convierte una cadena a un número con punto decimal float |
to_string (C++11) |
Convierte un entero o decimal a tipo string |
Ejemplos
Asignaciones y entrada/salida
Acceso a elementos
Capacidad
La salida anterior puede variar en la línea 5, según cada computadora.
Operaciones
Búsquedas
Funciones no miembro
No olvides probar los programas anteriores en tu IDE favorito, experimenta con ellos.
Cita esta página
Include Poetry - Code. (2020, 4 de enero). Plantilla string. Obtenido de https://www.include-poetry.com/Code/C++/Estructuras/STL/String/