C++
文章平均质量分 97
学习C++语言时写作的文章。
Snow_Dragon_L
这个作者很懒,什么都没留下…
展开
-
set与map
一、序列式容器与关联式容器二、pair1、键值对2、作用3、构造函数4、make_pair(1)构造函数(2)作用5、代码6、运行结果三、set1、概念2、代码3、运行结果4、说明四、multiset1、与set的关系2、代码3、运行结果五、map1、概念2、代码3、运行结果六、multimap1、与map的关系2、代码3、运行结果原创 2023-11-29 21:04:00 · 1306 阅读 · 13 评论 -
二叉搜索树
一、概念二、K模型与KV模型三、整体框架1、代码2、实现原理四、查找操作1、操作2、代码3、实现原理五、插入操作1、操作2、代码3、实现原理六、中序遍历1、代码2、实现原理七、删除操作1、操作2、代码3、实现原理图4、注意八、性能分析九、整体代码原创 2023-11-27 15:45:34 · 902 阅读 · 9 评论 -
C++中的多态
一、概念二、虚函数1、概念2、重写(覆盖)3、重载、覆盖(重写)、隐藏(重定义)的对比(1)重载(2)重写(3)隐藏三、多态的定义与使用1、多态的构成条件2、代码3、运行结果四、虚函数重写的两个例外1、协变2、析构函数的重写五、override和final六、抽象类1、概念2、接口继承和实现继承3、代码4、运行结果5、错误代码6、编译器报错七、虚函数表1、代码2、运行结果与调试窗口查看3、说明6、派生类虚表的生成7、虚函数与虚表八、动态绑定与静态绑定原创 2023-11-05 16:58:41 · 277 阅读 · 17 评论 -
继承、菱形继承与虚拟继承
一、继承概念二、定义格式三、继承方式四、派生类继承基类成员访问方式的变化五、基类和派生类对象赋值转换1、概念2、示意图3、示例代码4、特点六、继承中的作用域1、概念2、示例代码3、运行结果七、派生类的默认成员函数1、调用方法2、示例代码3、运行结果八、友元关系不能继承1、代码2、注意3、运行结果4、错误代码与编译器报错九、继承类别1、单继承(1)概念(2)示意图2、多继承(1)概念(2)示意图3、菱形继承(1)概念(2)示意图(3)缺点(4)示例代码(5)调试结果(6)不显式指定时编译器报的错误4、虚拟继承原创 2023-11-03 19:39:56 · 236 阅读 · 14 评论 -
list的模拟实现
一、节点类1、代码2、实现原理3、注意二、迭代器类1、基本框架(1)代码(2)实现原理2、*运算符重载(1)代码(2)作用(3)注意3、->运算符重载4、自增与自减运算符重载5、判断运算符重载三、list类1、基本框架(1)代码(2)实现原理(3)注意2、insert函数3、erase函数4、迭代器函数5、clear函数和析构函数6、swap函数、构造函数、拷贝构造函数和赋值运算符重载(1)代码(2)实现原理四、模拟实现list的代码原创 2023-10-23 23:38:26 · 351 阅读 · 22 评论 -
vector的模拟实现
一、整体框架1、代码2、实现原理3、注意二、迭代器操作函数1、代码2、实现原理三、容量函数1、代码2、实现原理四、reserve函数1、代码2、实现原理3、注意五、resize函数1、代码2、实现原理3、注意六、insert函数1、代码2、实现原理3、注意七、erase函数1、代码2、实现原理八、构造函数1、代码2、实现原理3、注意九、swap函数和赋值运算符重载函数1、代码2、实现原理十、拷贝构造函数1、代码2、实现原理3、注意十一、析构函数1、代码2、实现原理十二、模拟实现vector与测试的代码原创 2023-10-22 00:17:02 · 246 阅读 · 18 评论 -
string的模拟实现
一、整体框架1、代码2、实现原理3、注意二、构造函数1、代码2、实现原理3、注意三、析构函数1、代码2、实现原理四、swap和拷贝构造函数1、代码2、实现原理五、赋值运算符重载函数1、代码2、实现原理六、resize函数七、reserve函数八、c_str函数九、[]运算符十、insert函数十一、erase函数十二、push_back函数十三、append函数十四、关系运算符十五、find函数十六、流输入与流提取运算符重载十七、模拟实现string与测试的代码原创 2023-10-20 10:03:38 · 199 阅读 · 16 评论 -
string容器的常用操作
string容器、string构造函数、赋值运算符、[]运算符、容量操作、find、rfind、substr、append、push_back、+=。string和vector都不喜欢用iterator,因为[]更好用,而list、map和set等等只能用迭代器进行访问。iterator是所有容器通用的访问方式,即所有容器的用法都是类似的。iterator的用法像指针一样。在string尾部追加字符时,s.push_back( c ) / s.append(1, c) / s += 'c’三种实现差不多。原创 2023-09-07 07:52:14 · 444 阅读 · 11 评论 -
模板和STL简介
泛型编程的概念。函数模板的概念与使用。类模板的概念与使用。STL的概念、简介与其六大组件。错误的代码示例与编译器报错。使用函数重载虽然可以实现一个通用的交换函数,但是使用这种方法有几个不好的地方。重载的函数只有形参的类型不同,其他的都一样,这样的代码复用率比较低,当要进行操作的对象的类型不同时,就需要用户自己添加对应类型的函数。代码的可维护性比较低,一个函数出错可能所有的重载函数均会出错。原创 2023-09-04 12:34:06 · 445 阅读 · 10 评论 -
内存管理方式
C/C++的内存管理方式,malloc/calloc/realloc/free、new/delete及其实现原理和new[]/delete[]。operator new与operator delete。内存泄漏。栈/堆栈:存储非静态的局部变量、函数参数、返回值等等,栈是向下增长的。内存映射段:高效的I/O映射方式,用于装载一个共享的动态内存库。用户可以使用系统接口创建共享内存,做进程间通信。堆:用于程序运行时进行动态内存分配,堆是向上增长的。数据段:存储全局数据和静态数据。代码段:存储可执行的代码、只读常量原创 2023-09-03 12:18:24 · 1546 阅读 · 12 评论 -
类与对象(下)
一、初始化列表1、构造函数与初始化在对象调用构造函数之后,对象中的成员变量虽然已经有了一个初始值2、使用初始化列表的形式在构造函数后面,以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个“成员变量”后面跟一个放在括号中的初始值或表达式。类中包含以下成员变量时,必须将其放在初始化列表位置进行初始化:引用成员变量。const成员变量。自定义类型成员变量。explicit关键字、static成员、友元1、友元函数、友元类、内部类1、作用2、代码3、讲解4、运行结果与编译器报的错误友元类(1)概念(2)特性(原创 2023-08-26 10:47:09 · 486 阅读 · 11 评论 -
类与对象(中)
本文讲解的是类与对象的关系,主要讲解六个默认成员函数,构造函数、析构函数、拷贝构造函数、赋值运算符重载等等,讲解它们的概念、作用与如何使用等等,文章讲解详细、清晰且附有代码与图片。内置类型:语言提供的数据类型,如:int、char、double等等。自定义类型:我们使用class、struct、union等等,自己定义的类型。原创 2023-08-23 19:05:44 · 241 阅读 · 9 评论 -
类与对象(上)
/类体:由成员函数和成员变量组成//记得加上分号class为定义类的关键字,ClassName为要定义的类的名字,{}中的内容为类的主体,在类定义结束时,}后面的分号不能省略。类体中的内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。声明和定义全部放在类体中,编译器可能会将其当成内联函数处理。int _age;原创 2023-08-18 21:32:50 · 618 阅读 · 11 评论 -
万字讲解C++基础
定义命名空间,需要使用到namespace关键字,该关键字后面跟命名空间的名字,然后接一对{}即可,{}中的成员即为命名空间的成员,{}为这些成员的域。即一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。{}内的成员即为命名空间snow的成员在命名空间snow中嵌套定义了dragon命名空间。原创 2023-08-14 21:17:47 · 170 阅读 · 13 评论