天天看点

String类

将strvec类的一些变量进行全局替换就能得到string类

1、string替换为char

2、str替换为c,strs替换为c

3、strvec替换为string

4、#include <string>替换为#include<cstring>

strvec和string就是类似的

1、都是保存指向元素的指针,指向的空间都是在内中动态分配的。

2、拷贝构造函数、拷贝赋值运算符拷贝strvec(string)类的成员和指向的元素(拷贝赋值运算符有析构指向空间的过程)

3、析构函数都是析构指针指向的空间。

不同点:

reallocate:

    strvec:是移动原空间的数据到新空间,释放原空间的string对象,不释放string指向的char元素(移动后原string指向的空间为nullptr)

    string:移动char后,不会释放char

    原因是strvec有两层指向,最基础的一层是不能销毁的,否则移动到新空间的数据被销毁了(这个地方还理解去清楚)

string.cpp

继续阅读