C++学习过程
文章平均质量分 85
想去吹吹海风
热爱可抵岁月漫长
展开
-
【C++ STL学习】---map与set须知的使用细节
目录序列、关联式容器pair(K-V)简单用法set与multisetmap与multimapmap和multi的insert函数的差异map如何做到支持[]访问的?multimap为什么不支持[]?练习例题模拟实现序列、关联式容器序列式容器:vector、list、deque、forward_list(C++11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。关联式容器:set、map、multiset、multimap,也是用来存储数据的,与序列式容器不同的是原创 2021-06-03 13:40:00 · 385 阅读 · 0 评论 -
【C++】多态以及多态原理
目录原创 2021-05-10 20:12:31 · 357 阅读 · 1 评论 -
【C++】继承以及菱形虚拟继承(virtual修饰)解析
目录前言:面向对象(OO)三大特性继承前言:面向对象(OO)三大特性继承原创 2021-05-02 16:30:22 · 467 阅读 · 1 评论 -
【C++STL学习之路】---stack、queue、priority_queue、deque、Adapter。
目录栈队列双端队列优先级队列设计模式:适配器模式栈队列双端队列优先级队列设计模式:适配器模式原创 2021-04-22 19:07:34 · 264 阅读 · 0 评论 -
【C++ STL学习之路】 ---list重点以及模拟实现
list的迭代器迭代器失效模拟实现原创 2021-04-15 21:53:35 · 166 阅读 · 0 评论 -
【C++ STL学习之路】 ---vector必须熟知的底层原理(面试常考)
目录原创 2021-04-10 21:57:51 · 831 阅读 · 3 评论 -
【C++ STL学习之路】---------string
目录string是什么?C语言中的字符串标准库中的string类**总结:**为什么要定义string?string怎么用?string的相关习题string是什么?C语言中的字符串C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。标准库中的string类2.1 string类string类的文档介绍字符串是表示字符序列的类原创 2021-03-30 16:47:59 · 197 阅读 · 0 评论 -
【C++ STL学习之路】模拟实现string
目录借用我们老师说的一句话,模拟实现造轮子,不是为了写出更好的轮子,是为了让我们更了解底层,日后使用更加得心应手,即使出错,也能快速的找出错误所在。模拟实现中需要注意的细节都写在注释里,不再赘述。#pragma once#pragma warning (disable:4996)#include<assert.h>#include<iostream>namespace zt{ class string { public: //构建空字符串的写法 /*str原创 2021-03-30 16:47:07 · 138 阅读 · 0 评论 -
【C++】深浅拷贝
目录浅拷贝深拷贝代码示例:浅拷贝示例深拷贝示例总结附:代码浅拷贝浅拷贝就是只是拷贝值,不涉及空间上的复制。图解:深拷贝创建与被拷贝对象相同大小的空间,并且把里面的内容拷贝过去。代码示例:浅拷贝示例默认生成的拷贝构造和“=”,可以看到S1,S2,S3指向了同一块空间。在退出时,一旦析构释放了同一块内存空间,报错。深拷贝示例显而易见,可以看到S1,S2,S3指向了三块空间。运行成功总结当涉及动态内存开辟的时候,要采用深拷贝,如果仅仅需要拷贝值,不需要新的空间采用浅拷贝。原创 2021-03-30 10:25:03 · 160 阅读 · 0 评论 -
C++泛型编程:函数模板,类模板
泛型编程1. 泛型编程2. 函数模板2.1 函数模板概念2.1 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则3. 类模板3.0为什么要有类模板3.1 类模板的定义格式3.2 类模板的实例化1. 泛型编程如何实现一个通用的交换函数呢?void Swap(int& left, int& right){int temp = left;left = right;right = temp;}void Swap(double& left,原创 2021-03-12 21:20:04 · 126 阅读 · 0 评论 -
C++面试常考:内存管理
C/C++内存管理1. C/C++内存分布2. C语言中动态内存管理方式2.1 malloc/calloc/realloc和free3. C++内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型4. operator new与operator delete函数4.1 operator new与operator delete函数4.2 operator new与operator delete的类专属重载(池化技术)5. new和delete的实现原理5.1 内置类型原创 2021-03-12 20:04:48 · 369 阅读 · 0 评论 -
C++新手第五课----初始化列表,static修饰成员、友元、内部类。
目录再谈构造函数1.1 构造函数体赋值再谈构造函数1.1 构造函数体赋值在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。原创 2021-03-11 17:01:22 · 145 阅读 · 0 评论 -
C++新手入门第三课--重点1:类的大小如何计算?重点2:this指针
类与对象1.面向过程和面向对象初步认识不同点2.类的引入3.类的定义类的两种定义方式:4.类的作用域5.类的实例化6.类的访问限定符及封装7.类的对象大小的计算8.类成员函数的this指针1.面向过程和面向对象初步认识不同点C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。举个例子:假设我们要点外卖,对于点外卖这个需求,对于过程:选食物,下单,收到外卖。对于对象:顾客,商家,原创 2021-03-04 17:01:00 · 141 阅读 · 0 评论 -
C++新手入门第一课
C++入门0前言1、命名空间1.1命名空间定义1.2命名空间使用2、输入输出3、缺省参数3.1缺省参数概念3.2缺省参数分类3.3缺省参数使用注意4、函数重载4.1函数重载概念4.2名字修饰0前言1、命名空间1.1命名空间定义1.2命名空间使用2、输入输出3、缺省参数3.1缺省参数概念3.2缺省参数分类3.3缺省参数使用注意4、函数重载4.1函数重载概念4.2名字修饰...原创 2021-02-01 15:06:00 · 513 阅读 · 1 评论 -
C++第四课 ---类的六个默认成员函数
六个默认成员函数构造函数析构函数拷贝构造函数赋值操作符重载默认拷贝构造与赋值运算符重载的问题const成员函数构造函数析构函数拷贝构造函数赋值操作符重载默认拷贝构造与赋值运算符重载的问题const成员函数...原创 2021-02-05 19:58:51 · 240 阅读 · 0 评论 -
C++新手入门第二课---引用
C++入门第二课引用内联函数auto关键字(C++11)基于范围的for循环(C++11)指针空值---nullptr(C++11)引用内联函数auto关键字(C++11)基于范围的for循环(C++11)指针空值—nullptr(C++11)原创 2021-03-03 20:57:28 · 268 阅读 · 0 评论