C++
文章平均质量分 87
hyzhang_
每一个不曾起舞的日子都是对生命的辜负!!!
展开
-
SGI STL空间配置器内存池剖析注解
SGI STL空间配置器内存池剖析注解原创 2023-01-02 21:05:02 · 548 阅读 · 2 评论 -
Nginx内存管理源码剖析注解
Nginx内存管理源码剖析注解Nginx中内存池实现原创 2023-01-02 20:39:40 · 661 阅读 · 0 评论 -
智能指针的使用及其实现原理
- 目录 - 裸指针和智能指针 - 自己实现智能指针 - 不带引用计数的智能指针 - 带引用计数的智能指针 - 智能指针的循环引用(交叉引用)问题 - 多线程共享对象的线程安全问题 - 自定义删除器 - make_shared和make_unique - enable_shared_from_this类和shared_from_this()方法原创 2022-10-12 20:57:33 · 1182 阅读 · 0 评论 -
绑定器和函数对象的实现原理
- 目录 - C++ STL中的绑定器 - C++11中的bind和function - lamdba表达式使用及其原理原创 2022-10-11 08:23:58 · 238 阅读 · 0 评论 -
【C++】继承?组合?菱形继承?虚继承?虚基表?
【C++】第11章:继承文章目录【C++】第11章:继承一、继承的概念1、继承的初识2、继承的定义方式2.1.定义继承的格式2.3.派生类中成员变量在继承后的访问方式的变化3、总结二、基类和派生类对象的赋值转换(切片)三、继承中的作用域四、派生类中的默认成员函数五、在继承中友元六、在继承中的静态成员七、继承方式1.单继承2.多继承2.1.多进程的“祸害”菱形继承2.2.解决菱形继承的方法-虚拟继承2.3.虚拟继承的原理3.总结八、继承和组合常见笔试面试题一、继承的概念1、继承的初识在写有相同功能的同原创 2021-10-16 20:40:04 · 193 阅读 · 5 评论 -
【C++】第10章:类模板-模板的全特化和偏特化及模板的分离编译
【C++】第10章:类模板-模板的全特化和偏特化及模板的分离编译文章目录【C++】第10章:类模板-模板的全特化和偏特化及模板的分离编译一、非类型模板参数二、模板的特化1.为什么会有模板特化?2.模板的特化及偏特化2.1 函数模板的特化2.2 类模板的特化及偏特化三、模板的分离编译1.是什么分离编译?2.分析模板为什么不能分离编译3.如何解决模板不能分离编译的问题四、模板的总结一、非类型模板参数模板参数分类为两种:类型形参与非类型形参。类型形参:出现在模板参数列表中,标有关键字class或者type原创 2021-09-23 16:22:48 · 661 阅读 · 6 评论 -
【C++】第九章:IO流
【C++】第九章:IO流文章目录【C++】第九章:IO流一、C语言的输入输出二、流的概念三、C++的IO流1.C++标准IO流2.C++文件IO流①.定义文件流对象②.打开文件③.对文件进行读写操作④.关闭文件3.operator<< 和 operator>>写入和读取四、stringstream流一、C语言的输入输出在C语言中用到的输入输出方式就是scanf ()与printf()。scanf(): 从标准输入设备(键盘)读取数 据,并将值存放在变量中。print原创 2021-09-20 16:25:06 · 255 阅读 · 3 评论 -
【C++】第八章:STL之priority_queue的使用和模拟实现
文章目录一、priority_queueu的使用1.priority_queue的介绍2.priority_queue的定义3.priority_queue的常用接口二、priority_queue的模拟实现调整堆算法-shiftUp()-shiftDown()shiftUp()算法shiftDown()算法模拟实现一、priority_queueu的使用1.priority_queue的介绍优先队列是一种容器适配器,默认情况下STL(头文件是<queue>)中使用vector作为其底层的原创 2021-09-18 22:52:29 · 735 阅读 · 6 评论 -
【C++】第七章:STL之stack&&queue的模拟实现
文章目录stack&&queue的使用stack的定义stack的使用queue的定义queue的使用stack&&queue的模拟实现stack&&queue的使用stack的定义方式一: 使用默认的适配器定义栈。stack<int> stk;方式二: 使用特定的适配器定义栈。stack<int, vector<int>> stk;stack<int, list<int>> stk;原创 2021-09-09 18:08:50 · 204 阅读 · 1 评论 -
【C++】第六章:STL之模拟实现list及vector和list的区别
文章目录一、vector和list的对比二、list的模拟实现一、vector和list的对比vector是一个可以动态增容的数组。list是一个带头双向循环链表。功能vectorlist底层实现动态增容数组带头双向循环链表随机访问元素支持随机访问任意位置的元素,O(1)访问不支持随机访问任意位置的元素,O(N)访问插入和删除元素头尾部元素的操作是O(1),中间位置元素的操作是O(N)任意位置的元素操作都是O(1)增容空间不足时会动态的增容,增容原创 2021-09-09 17:26:04 · 104 阅读 · 0 评论 -
【C++】第五章:STL之模拟实现string
#pragma once#include <iostream>#include <cstring>#include <algorithm>#include <assert.h>using std::cout;using std::endl;using std::cin;using std::ostream;using std::istream;namespace zhy // zhy是本人的名字{ class string {.原创 2021-07-22 22:27:27 · 91 阅读 · 1 评论 -
两张图带你理解深浅拷贝
深浅拷贝概念深浅拷贝问题是在类的默认构造函数中常常会出现的问题,一般都是发生在带有指针的类中,凡是一个带有指针的类需要让指针指向开辟在堆上的空间时就需要注意这个问题了。浅拷贝:又称值拷贝,只是单纯的将对象中的成员变量的值拷贝到另一个对象的成员变量中。深拷贝:当要拷贝一个指针并且指针指向的一块新开辟出的空间的时候,想要拷贝出另一个也指向一块新开辟出的空间的指针,这是浅拷贝做不到的,这时就需要用到深拷贝。浅拷贝拿Complex类举例子class Complex{ // 默认生成的拷贝构造原创 2021-07-19 17:24:40 · 99 阅读 · 0 评论 -
【C++】第四篇:模板初识
C++模板及其原理文章目录C++模板及其原理泛型编程的概念函数模板函数模板的概念函数模板的格式函数模板的演示:函数模板的原理函数模板的实例化隐式实例化显式实例化函数参数的匹配原则类模板类模板的概念类模板的格式类模板的实例化泛型编程的概念在谈模板之前先来了解一下“泛型编程”的概念。什么叫泛型,就是可以广泛的编程,所以可以初步的认为这种编程方法可以是的我们的编程复杂度降低,一定程度上提高编程效率。在我写过的一篇博客中 手把手带你入门C++面向对象提到过C++中的函数重载及其原理,比如说交换函数:vo原创 2021-06-14 19:36:37 · 246 阅读 · 5 评论 -
【C++】第三篇:面向对象(类和对象,内存管理)
从面向过程到面向对象之类的引入阅读完这个版块你可以了解以下内容1)面向过程和面向对象的区别2)类的定义和使用3)类的大小计算4)this指针的存放位置和this是否可以为空对面向过程和面向对象的认识面向过程注重的是过程,也就是分析问题的步骤,靠的是变量和函数调用,其中变量和函数是分离开来的面向对象注重的是对象,将一件事情分成了不同的对象,靠的是对象之间的交互,其中对象中结合了数据成员和函数(有点像离散数学中的[代数系统](代数系统_百度百科 (baidu.com)))**面向过程的原创 2021-05-31 13:49:19 · 341 阅读 · 7 评论 -
【C++】第二篇:(namespace)(引用)(缺省参数)(函数重载)(内联函数)
C++基础命名空间(namespace)namespace的作用:为了解决C语言中命名冲突的问题,C++引进了namespace,在不同的namespace中命名可以相同,使用的时候注意要用namespace的名字+域作用符::使用namespace中的东西,在你的命名空间里你可以任意返回你的想象写代码,不用担心变量名和别人相同了。可能平时最常用的就是标准库中的函数了,所以有时候避免麻烦通常会在引完头文件后加上using namespace std其实这就是在用标准库中的函数,它的namespace叫原创 2021-05-20 17:43:28 · 431 阅读 · 2 评论 -
【手把手入门C++】第一篇:(Bool,内联函数,引用,函数重载,参数缺省)
在未来的几周内,我会持续更新我的C++学习成果,希望可以帮助到你。> Bool类型bool类型是C++特有的类型,它只占一个字节大小,只存放真假,例如:(1或0,true或false)他也可以是一个表达式(0>1代表假,10>7代表真)#include <iostream>using namespace std;int main(){ bool arr = true; arr = false; arr = 1; arr = 0; return.原创 2021-01-27 21:37:04 · 532 阅读 · 0 评论