3-31(string底层实现)
16lz
2021-03-31
前些天,因为效率低下,去玩了2天,今天回来接着学。
今天主要学习了简单string的实现,以及string的遍历和增删改查的增;
string的简单实现主要包括构造函数、析构函数、拷贝构造函数的实现。
构造函数需要注意的是:1、得注意应该单独开辟一个空间来存放传递的参数,应该在堆上面。2、当不需要传参时,不能使string对象中的指针为nullptr,因为如果对该指针解引用时,会出错,因为空指针不能解引用,所以当不传任何实参时,也应该使其开辟一个字节的空间,来存放\0,表示数组存在。
拷贝构造函数需要注意的是:避免浅拷贝,浅拷贝可能会出现析构2次同一块地址,所以需要深拷贝,深拷贝原理就是开辟一块和被拷贝的对象一样大的空间,delete旧的空间,然后指针指向新开辟的地址,就搞定了。
增需要注意的就是内存不足时,需要开辟新的空间,但是得记住开辟得空间应该比strlen求得的大一个字节,因为得为\0留一个空间。
好知识,才能预见未来
赞赏
0人进行了赞赏支持
更多相关文章
- rsync断点续传
- 苹果Mac不能复制拷贝文件到U盘如何解决?
- VMware拷贝虚拟机
- 单表快速恢复!XtraBackup 隐藏技巧揭秘
- RabbitMQ:rabbitmq.config(not found)问题解决
- Python工程师需要掌握的面试题
- Android(安卓)studio的那些坑- so文件添加的正确位置
- Android(安卓)手机sdcard目录或文件的拷贝、移动、删除(递归)
- Android(安卓)设计模式之原型模式