le mie informazioni di contatto
Posta[email protected]
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Revisione STL
Come introdurre questi contenitori, dalle interfacce comuni, ai tipi di iteratori e alle implementazioni sottostanti
A rigor di termini, la stringa non appartiene a stl, appartiene alla libreria standard C
**Implementazione sottostante: **String è essenzialmente una tabella di sequenza di tipo char Poiché l'implementazione specifica in diversi compilatori è diversa, qui fornisco solo una mia struttura di risposta 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;
Infatti, nella serie VS, la stringa contiene un puntatore e un'unione (un array e un puntatore). Se la lunghezza della stringa è inferiore a 16 byte, verrà utilizzato l'array aperto in precedenza, se è maggiore di 16 byte, verrà richiesto spazio sull'heap e verrà utilizzato il puntatore punto), dimensione e capacità
Sotto g, la stringa contiene solo un puntatore, che punta a uno spazio sull'heap, incluso un puntatore che punta allo spazio aperto per la stringa, conteggio dei riferimenti, dimensione e capacità. Questo conteggio dei riferimenti consente all'assegnazione e alla copia di questi oggetti di richiedere solo a copia superficiale per aumentare il conteggio dei riferimenti Questo è tutto
Tipo di iteratore: Iteratore ad accesso casuale
Interfacce comunemente utilizzate:
Nome della funzione | Funzione |
---|---|
taglia / lunghezza | Restituisce il numero di caratteri validi in una stringa |
cancella / riserva / ridimensiona | Cancella i caratteri validi/riserva spazio/riduci il numero di caratteri validi a n e riempi lo spazio extra con il carattere c |
operatore[] | Restituisce il carattere nella posizione pos |
push_back / aggiungi / operatore = | Inserisci il carattere c/string/string alla fine della stringa |
c_str | Restituisce la stringa in formato C |
trova / rfind npos | Trova il carattere c partendo dalla posizione pos della stringa e andando (indietro/prima) e restituisce la posizione del carattere nella stringa npos. |
sostituto | Partendo dalla posizione pos in str, intercetta n caratteri e li restituisce |
operatore |