minhas informações de contato
Correspondência[email protected]
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Revisão STL
Como apresentar esses contêineres, a partir de interfaces comuns, tipos de iteradores e implementações subjacentes
A rigor, string não pertence ao stl, pertence à biblioteca padrão C
**Implementação subjacente: **String é essencialmente uma tabela de sequência do tipo char Como a implementação específica em diferentes compiladores é diferente, forneço apenas uma estrutura de resposta curta minha aqui.
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;
Na verdade, na série VS, a string contém um ponteiro e uma união (um array e um ponteiro. Se o comprimento da string for menor que 16 bytes, o array aberto antecipadamente será usado se for maior que 16). bytes, o espaço será aplicado no heap e o ponteiro será usado), tamanho e capacidade.
Em g, a string contém apenas um ponteiro apontando para um espaço no heap, incluindo um ponteiro apontando para o espaço aberto para a string, contagem de referência, tamanho e capacidade. Essa contagem de referência permite a atribuição e cópia desses objetos para exigir apenas um. cópia superficial para aumentar a contagem de referências.
Tipo de iterador: Iterador de acesso aleatório
Interfaces comumente usadas:
Nome da função | Função |
---|---|
tamanho / comprimento | Retorna o número de caracteres válidos em uma string |
limpar / reservar / redimensionar | Limpe os caracteres válidos/reserve espaço/reduza o número de caracteres válidos para n e preencha o espaço extra com o caractere c |
operador[] | Retorna o caractere na posição pos |
push_back / anexar / operador = | Insira o caractere c/string/string no final da string |
c_str | Retornar string de formato C |
encontrar / rfind npos | Encontre o caractere c começando na posição pos da string e indo (voltar/antes) e retornar a posição do caractere na string npos não é retornado. |
substr | Começando na posição pos em str, intercepte n caracteres e retorne-os |
operador |