2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Revue STL
Comment présenter ces conteneurs, à partir des interfaces communes, des types d'itérateurs et des implémentations sous-jacentes
À proprement parler, la chaîne n'appartient pas à stl, elle appartient à la bibliothèque standard C
**Implémentation sous-jacente : **String est essentiellement une table de séquence de type char. Étant donné que l'implémentation spécifique sous différents compilateurs est différente, je ne fournis ici qu'un court cadre de réponse.
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;
En effet, sous la série VS, la chaîne contient un pointeur et une union (un tableau et un pointeur). Si la longueur de la chaîne est inférieure à 16 octets, le tableau ouvert au préalable sera utilisé. Si elle est supérieure à 16. octets, de l'espace sera demandé sur le tas et le pointeur sera utilisé), taille et capacité.
Sous g, la chaîne ne contient qu'un pointeur pointant vers un espace sur le tas, y compris un pointeur pointant vers l'espace ouvert pour la chaîne, le nombre de références, la taille et la capacité. Ce nombre de références permet l'affectation et la copie de ces objets pour ne nécessiter qu'un seul pointeur. copie superficielle pour augmenter le nombre de références.
Type d'itérateur : Itérateur d'accès aléatoire
Interfaces couramment utilisées :
Nom de la fonction | Fonction |
---|---|
taille / longueur | Renvoie le nombre de caractères valides dans une chaîne |
effacer / réserver / redimensionner | Effacez les caractères valides/réservez de l'espace/réduisez le nombre de caractères valides à n et remplissez l'espace supplémentaire avec le caractère c |
opérateur[] | Renvoie le caractère en position pos |
push_back / ajouter / opérateur = | Insérer le caractère c/string/string à la fin de la chaîne |
c_str | Renvoie une chaîne au format C |
trouver / trouver des npos | Recherchez le caractère c à partir de la position pos de la chaîne et en allant (en arrière/avant), et renvoyez la position du caractère dans la chaîne npos n'est pas renvoyée. |
substr | À partir de la position pos dans str, interceptez n caractères et renvoyez-les |
opérateur |