τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Αναθεώρηση STL
Πώς να εισαγάγετε αυτά τα κοντέινερ, από κοινές διεπαφές, τύπους επαναληπτικών και υποκείμενες υλοποιήσεις
Αυστηρά μιλώντας, το 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 χαρακτήρες και επιστρέψτε τους |
χειριστής |