Bootstrap

string的底层实现(带注释)

关于string的默认构造函数

首先定义一个域,在域中创建一个名为string的类,此类中所需的私有成员变量具体为:
在这里插入图片描述
此中,_str表示的是字符串的首地址指针,_size表示的是当前字符串中存储了字符的长度,_capacity表示的是当前字符串的最大存储容量,npos此处是string中定义的静态常量。
一.带缺省参数的构造函数
在这里插入图片描述
此处如果不传参str就只为当前对象开个空间,并将对象置为空,如果传参str就将对象进行初始化为str。

二. 拷贝构造函数

  1. 传统写法:
    在这里插入图片描述
    此处传统写法就直接为当前对象的指针开一个与拷贝对象一样的空间,并将拷贝对象中的字符串赋值给当前对象,此处的+1是给\0开的空间。

  2. 现代写法:
    相比于传统写法,现代写法就显得妙了很多,利用了交换算法。

;