Condivisione della tecnologia

Revisione STL-Contenitori seriali e adattatori per contenitori Part

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Revisione STL

1. Contenitori comuni

Come introdurre questi contenitori, dalle interfacce comuni, ai tipi di iteratori e alle implementazioni sottostanti

Inserisci qui la descrizione dell'immagine


contenitore di sequenza

corda

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 funzioneFunzione
taglia / lunghezzaRestituisce il numero di caratteri validi in una stringa
cancella / riserva / ridimensionaCancella 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_strRestituisce la stringa in formato C
trova / rfind nposTrova il carattere c partendo dalla posizione pos della stringa e andando (indietro/prima) e restituisce la posizione del carattere nella stringa npos.
sostitutoPartendo dalla posizione pos in str, intercetta n caratteri e li restituisce
operatore