而此时另一些对象不知道该资源已经被释放, 以为还有效, 当继续对该资源进行操作时, 就会发生违规访问. 所以要解决浅拷贝问题, C++特意引入了深拷贝.
原创
2022-11-14 14:18:16
129阅读
@TOC
string底层是一个字符数组
为了跟库里的string区别,所以定义了一个命名空间 将string类包含1. string的模拟实现1.构造函数#pragma once#include<iostream>using namespace std;namespace yzq{ class string { public: string()//无参
原创
精选
2023-02-24 09:19:02
373阅读
一、C语言中的string类C语言中,字符串是以‘\0’结尾的一些字符集合,为了操作方便,C标准库中提供了一些str系列的库函数,但这些库函数与字符串是分离的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会访问越界。二、C++中的string类1、string类string类的文档介绍:cplusplus.com/reference/string/string/?kw=str
原创
2023-08-16 19:54:21
152阅读
string 的现代式写法#include<iostream>using namespace std;class String{friend ostream& operator<<(ostream &os,String &str);public:String(
原创
2016-03-12 08:47:36
634阅读
@TOC?前言前面我们学习了string的用法,本节我们将实现string的模拟实现,话不多说,直接上手,因此我们先了解我们是多文件进行编写,因此需要注意命名空间的控制,这是文件分布图:OK,我们开始~注:标注声明的是加在类的声明(string.h),定义在类的定义(string.cpp)如果漏写,那就是小标题就是声明?:? string的基本要素我们看 成员变量三部分:char* _str: 指
原创
2024-08-27 23:51:44
48阅读
文章摘要: 本文探讨了C++中string类的模拟实现,重点分析了浅拷贝带来的问题及深拷贝解决方案。通过代码示例展示了string类的关键功能实现,包括构造函数、拷贝构造、赋值重载、析构函数等核心操作。文章详细比较了传统写法与现代写法的区别,并提供了push_back、append、insert、erase等常用成员函数的具体实现方法。最后,还介绍了find和substr等字符串处理功能的实现原理,为深入理解string类底层机制提供了有价值的参考。
目录1.传统写法和现代写法2.对于流提取的优化3.简单机制了解4.string类的几个构造函数总结4.1基本用法4.2两个赋值方式4.3拷贝构造4.4获取字符4.5一个容易混淆的对比4.6创建对象1.传统写法和现代写法(1)上面的代码里面的左边部分是现代的拷贝和赋值的写法,右边是完全我们自己实现的,这两者仅仅在代码的简洁度上面有所区别,其他的大体相同;(2)现代的写法里面,我们使用的初始化列表进行
什么是string类string类是C++STL中提供的字符串类,用于高效的处理字符串类型数据,其包含在头文件<string>中string的简单实现构造函数和析构函数为了防止与STL中的string类冲突(当我们引入命名空间std时),我们将模拟string置于命名空间namespace X中,如下所示namespace X {
class string {
public:
原创
精选
2024-01-07 23:35:33
795阅读
String的模拟实现&&resize&&find函数&&substr函数&&拷贝赋值的深度理解
模拟实现的C++SLT的string容器, 详细易懂
下面的代码来自c++ primer plus第5版第12章,书中代码写的非常好:// string1.h -- fixed and augmented string class definition#include using std::ostream;using std::istream;#ifndef STRING1_H_#define STRING1_H_class String{private: char * str; // pointer to string int len; // length of string ...
转载
2013-08-25 02:21:00
176阅读
2评论
模拟String类#includeusing namespace std;class String{public: String(char *data="") { if (*data == '\0')
原创
2022-10-13 11:34:50
23阅读
定义和结构对字符串的使用和操作往往非常频繁,在C++中,为了便于对字符串进行管理,引入了string类。string类是basic_string类模板的一个实例:有typedef basic_string<char, char_traits, allocator>
string。string类的存储结构其实是一个顺序表,与C语言传统字符串的使用相比,用string类对字符串进行管理,往
原创
2023-07-09 16:11:30
153阅读
本文介绍了 string 类的常用接口,并重点完成了其模拟实现。通过亲手实现拷贝构造、赋值重载等函数,深入理解了深浅拷贝的区别和现代写法的优势。掌握 string 的底层原理对理解 C++ 的面向对象特性和内存管理机制至关重要。
本篇内容:string类的常见接口及其模拟实现,我将会从遍历,增,删,查,改5个方面对常见,常用的接口进行模拟实现string类。
推荐
原创
2022-08-25 16:00:21
817阅读
点赞
今天我们来讲一将STL库中string类,因为有了string的支撑下,提供了许许多多的接口和一些运算符的重载,让如下~我的仓库。...
原创
2022-08-14 00:35:25
246阅读