Κοινή χρήση τεχνολογίας

STL Review-Serial Containers and Container Adapters Part

2024-07-08

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

Αναθεώρηση STL

1. Κοινά δοχεία

Πώς να εισαγάγετε αυτά τα κοντέινερ, από κοινές διεπαφές, τύπους επαναληπτικών και υποκείμενες υλοποιήσεις

Εισαγάγετε την περιγραφή της εικόνας εδώ


δοχείο ακολουθίας

σειρά

Αυστηρά μιλώντας, το string δεν ανήκει στο stl, ανήκει στην τυπική βιβλιοθήκη C

**Υποκείμενη υλοποίηση: **Η συμβολοσειρά είναι ουσιαστικά ένας πίνακας ακολουθίας τύπου char Επειδή η συγκεκριμένη υλοποίηση σε διαφορετικούς μεταγλωττιστές είναι διαφορετική, παρέχω μόνο ένα σύντομο πλαίσιο απαντήσεων εδώ.

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;

Στην πραγματικότητα, στη σειρά VS, η συμβολοσειρά περιέχει έναν δείκτη και μια ένωση (ένας πίνακας και ένας δείκτης εάν το μήκος της συμβολοσειράς είναι μικρότερο από 16 byte, ο πίνακας που έχει ανοίξει εκ των προτέρων θα χρησιμοποιηθεί). bytes, θα εφαρμοστεί χώρος στο σωρό και θα χρησιμοποιηθεί ο δείκτης), το μέγεθος και η χωρητικότητα

Κάτω από το g, η συμβολοσειρά περιέχει μόνο έναν δείκτη, που δείχνει ένα κενό στο σωρό, συμπεριλαμβανομένου ενός δείκτη που δείχνει το διάστημα που ανοίγει για τη συμβολοσειρά, το πλήθος αναφοράς, το μέγεθος και τη χωρητικότητα Αυτό το πλήθος αναφοράς επιτρέπει την αντιστοίχιση και την αντιγραφή αυτών των αντικειμένων ρηχό αντίγραφο για να αυξήσετε τον αριθμό των αναφορών

Τύπος επαναλήπτη: Επαναληπτική τυχαία πρόσβαση

Διασυνδέσεις που χρησιμοποιούνται συνήθως:

Όνομα συνάρτησηςΛειτουργία
μέγεθος / μήκοςΕπιστρέφει τον αριθμό των έγκυρων χαρακτήρων σε μια συμβολοσειρά
διαγραφή / κράτηση / αλλαγή μεγέθουςΔιαγράψτε τους έγκυρους χαρακτήρες/κρατήστε χώρο/μειώστε τον αριθμό των έγκυρων χαρακτήρων σε n και συμπληρώστε τον επιπλέον χώρο με τον χαρακτήρα c
χειριστής[]Επιστρέφει τον χαρακτήρα στη θέση θέσης
push_back / προσάρτηση / χειριστής =Εισαγάγετε τον χαρακτήρα c/string/string στο τέλος της συμβολοσειράς
c_strΕπιστροφή συμβολοσειράς μορφής C
βρείτε / rfind nposΒρείτε τον χαρακτήρα c ξεκινώντας από τη θέση pos της συμβολοσειράς και πηγαίνοντας (πίσω/πριν), και η θέση του χαρακτήρα στη συμβολοσειρά δεν επιστρέφεται.
υποστρΞεκινώντας από τη θέση pos στο str, κόψτε n χαρακτήρες και επιστρέψτε τους
χειριστής