Mi informacion de contacto
Correo[email protected]
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
revisión STL
Cómo presentar estos contenedores, desde interfaces comunes, tipos de iteradores e implementaciones subyacentes
Estrictamente hablando, la cadena no pertenece a stl, pertenece a la biblioteca estándar de C.
**Implementación subyacente: **La cadena es esencialmente una tabla de secuencia de tipo char. Debido a que la implementación específica en diferentes compiladores es diferente, aquí solo proporciono un marco de respuesta breve.
class string
{
public:
typedef char* iterator;
typedef const char* const_iterator;
private:
char* _str; // 堆上开辟的顺序表空间
size_t _size; // 有效字符个数
size_t _capacity; // _str的空间大小
static const size_t npos; // 最大字符串大小
};
const size_t string::npos = -1;
De hecho, en la serie VS, la cadena contiene un puntero y una unión (una matriz y un puntero). Si la longitud de la cadena es inferior a 16 bytes, se utilizará la matriz abierta de antemano si es mayor que 16. bytes, se solicitará espacio en el montón y se utilizará el puntero, tamaño y capacidad.
Bajo g, la cadena solo contiene un puntero que apunta a un espacio en el montón, incluido un puntero que apunta al espacio abierto para la cadena, el recuento de referencias, el tamaño y la capacidad. Este recuento de referencias permite que la asignación y copia de estos objetos solo requieran un. copia superficial para aumentar el recuento de referencias.
Tipo de iterador: Iterador de acceso aleatorio
Interfaces de uso común:
Nombre de la función | Función |
---|---|
Tamaño / longitud | Devuelve el número de caracteres válidos en una cadena. |
Limpiar / Reservar / Cambiar tamaño | Borre los caracteres válidos/reserve espacio/reduzca el número de caracteres válidos a n y complete el espacio adicional con el carácter c |
operador[] | Devuelve el carácter en la posición pos. |
push_back / añadir / operador = | Inserte el carácter c/cadena/cadena al final de la cadena |
c_str | Devolver cadena en formato C |
buscar/rfind npos | Encuentre el carácter c comenzando desde la posición pos de la cadena y yendo (hacia atrás/antes), y devuelva la posición del carácter en la cadena no se devuelve. |
substr | Comenzando desde la posición pos en str, intercepte n caracteres y devuélvalos |
operador |