C++
从零出发——
这个作者很懒,什么都没留下…
展开
-
程序员成长之旅——智能指针
程序员成长之旅——智能指针智能指针的发展旅程智能指针的模拟实现 智能指针的发展旅程 我所了解的智能指针其实是为了解决一些异常安全的问题的,它是运用RAII思想封装的类,从而可以达到自动析构的形式。 auto_ptr C++98提出来的第一个智能指针,它是一个类似管理权转让的形式,拷贝构造或者赋值的时候,将其原本的管理权转交给新的对象。 unique_ptr C++11提出来的,它的特性非常的明确,就是防拷贝和赋值,将其私有化,或者delete。 shared_ptr C++11提出来的,这是为了可以支持拷贝原创 2020-05-17 16:51:42 · 233 阅读 · 0 评论 -
程序员成长之旅——泛型模板
程序员成长之旅——泛型模板泛型编程 大家都知道C++是C的超集,具有面向对象编程的能力。然而许多程序员可能还不知道,C++不仅是一个面向对象程序语言,它还适用于泛型编程。今天我们通过一些问题来认识一下泛型编程。 泛型编程 1.举例说明什么是泛型编程 泛型编程指编写完全一般化并可以重复使用的算法,其效率与针对某特定数据类型而设计的算法相同。所谓泛型,是指具有在多种数据类型上皆可操作的含意,在C++中...原创 2020-03-13 00:11:14 · 266 阅读 · 0 评论 -
程序员成长之旅——继承和多态
程序员成长之旅——继承和多态继承和多态 C++的三大特性有:封装、继承、多态。 今天我们来探索一下继承和多态。 继承和多态 先简单理解一下继承和多态:继承相当于子类继承了父类的数据和方法,子类父类我们也称为派生类和基类,继承一般我们在子类中添加的是父类没有的成员。而多态是建立在继承之上的,它使用了C++编译器最核心的技术,即动态绑定技术。其核心思想是父类对象调用子类对象的方法。 接下来我们通过...原创 2020-03-11 10:39:27 · 227 阅读 · 0 评论 -
程序员成长之旅——二叉搜索树的简单模拟实现
程序员成长之旅——二叉搜索树的模拟实现二叉搜索树的概念二叉搜索树的模拟实现画图解析重难点代码二叉搜索树的特点和性能 二叉搜索树的概念 二叉搜索树又称为二叉排序树,它或者是一个空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树的所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上的所有值均大于根节点的值 它的左右子树分别也都是二叉搜索树 二叉搜索树的模拟实现 画图解析重难点...原创 2020-02-20 18:59:52 · 185 阅读 · 0 评论 -
程序员成长之旅——list容器
程序员成长之旅——listlist的简介和使用list的简介list的使用list的常见问题list底层为啥是带头双向循环链表list迭代器失效list和vector的比较 list的简介和使用 list的简介 list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代; list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立结点中,在结点中通过指...原创 2020-01-20 23:22:17 · 196 阅读 · 0 评论 -
程序员成长之旅——vector容器
程序员成长之旅——vector容器vector的常见使用vector的定义vector iterator的使用vector增删查改vector常见问题vector的底层实现原理以及实现机制vector空间增长问题vector< char >和string的区别vector迭代器失效问题 vector的常见使用 vector的定义 构造函数声明 vector() //无参构造 vecto...原创 2020-01-19 19:24:21 · 342 阅读 · 0 评论 -
程序员成长之旅——string(深浅拷贝、写时拷贝)
程序员成长之旅——string简介以及深浅拷贝对比string简介string的初始化string的比较等操作string的一些特性string的查找string其它常用的函数浅拷贝深拷贝写时拷贝 string简介 string的初始化 首先,string要使用的话,必须包含其头文件。 #incldue<string> 还要知道的是string类是一个模范类,位于名字空间std中,因...原创 2020-01-18 13:29:42 · 335 阅读 · 0 评论 -
程序员成长之旅——模板初阶
程序员成长之旅——模板初阶泛型编程函数模板函数模板的概念函数模板的格式函数模板的原理函数模板的实例化模板参数的匹配原则类模板 泛型编程 如何实现一个通用的加法函数呢? int Add(int left, int right) { return left + right; } double Add(double left, double right) { return left + right;...原创 2019-10-03 13:23:43 · 193 阅读 · 0 评论 -
程序员成长之旅——C/C++内存管理上篇
程序员成长之旅——C/C++内存管理上篇C/C++内存分布C语言中动态内存管理方式C++中内存管理方式operator new 和 operator deletenew 和 delete 实现原理内置类型自定义类型 C/C++内存分布 先看一个代码段的题 int globalVar = 1; static int staticGlobalVar = 1; void Test() { static...原创 2019-10-03 12:54:45 · 352 阅读 · 0 评论 -
程序员成长之旅——static和extern总结
程序员成长之旅——static和extern总结staticextern static 在C++中,不仅支持传统C语言static的特性。如:全局静态变量,局部静态变量,静态函数等,还对static进行了扩展,支持静态数据成员,静态函数成员,静态对象等 static变量的常见应用 静态局部变量和普通局部变量的区别: 1.存储位置不同 静态局部变量的生命周期是全局的,整个源文件执行完毕后释放,...原创 2019-09-24 09:36:45 · 237 阅读 · 0 评论 -
程序员成长之旅——类和对象下篇
程序员成长之旅——类和对象下篇原创 2019-09-18 23:07:23 · 265 阅读 · 0 评论 -
程序员成长之旅——日期类的实现
程序员成长之旅——日期类的实现Date.hDate.cpp Date.h #define _CRT_SECURE_NO_WARNINGS 1 #pragma once #include<iostream> using namespace std; class Date { /*一年一共有365天或者366天,平年有365天,闰年有366天,闰年每隔4年一次。100年不闰,400年一闰...原创 2019-09-18 12:47:05 · 233 阅读 · 1 评论 -
程序员成长之旅——类和对象中篇
程序员成长之旅——类和对象中篇原创 2019-09-18 12:24:16 · 808 阅读 · 0 评论 -
程序员成长之旅——类和对象上篇
程序员成长之旅——类和对象上篇原创 2019-09-14 19:04:19 · 419 阅读 · 0 评论 -
程序员成长之旅——初识C++
程序员成长之旅——初识C++什么是C++如何学习C++C++关键字C++命名空间命名空间的定义命名空间的使用C++的输入和输出缺省参数概念分类函数重载概念名字修饰(name Mangling)extern “C”引用概念特性常引用使用场景传值和传引用的效率比较引用和指针的区别内联函数auto关键字(C++11)范围for循环的使用指针空值nullptr(C++11) 什么是C++ C++是C语言...原创 2019-07-31 19:29:37 · 264 阅读 · 0 评论