随笔分类 - C++
摘要:queue概述 queue是一种先进先出的数据结构,允许新增元素、移除元素,queue只允许从底端加入元素,从顶端移除元素,不允许有遍历行为。 queue定义 以某种既有容器作为底部结构,将其接口改变,使之符合"先进先出"的特性,形成一个queue,是很容易做到的,deque是双向开口的数据结构,若
阅读全文
摘要:stack概述 stack是一种先进后出的数据结构,它只有一个出口,允许新增元素、移除元素、取得最顶端元素,但每次只能处理顶端元素,也就是说,stack不允许遍历行为。 stack定义 以某种既有容器作为底部结构,将其接口改变,使之符合"先进后出"的特性,形成一个stack,是很容易做到的,dequ
阅读全文
摘要:deque源码1(deque概述、deque中的控制器) deque源码2(deque迭代器、deque的数据结构) deque源码3(deque的构造与内存、ctor、push_back、push_front) deque源码4(deque元素操作:pop_back、pop_front、clear
阅读全文
摘要:deque源码1(deque概述、deque中的控制器) deque源码2(deque迭代器、deque的数据结构) deque源码3(deque的构造与内存、ctor、push_back、push_front) deque源码4(deque元素操作:pop_back、pop_front、clear
阅读全文
摘要:deque源码1(deque概述、deque中的控制器) deque源码2(deque迭代器、deque的数据结构) deque源码3(deque的构造与内存、ctor、push_back、push_front) deque源码4(deque元素操作:pop_back、pop_front、clear
阅读全文
摘要:deque源码1(deque概述、deque中的控制器) deque源码2(deque迭代器、deque的数据结构) deque源码3(deque的构造与内存、ctor、push_back、push_front) deque源码4(deque元素操作:pop_back、pop_front、clear
阅读全文
摘要:list源码1(参考STL源码--侯捷):list节点、迭代器、数据结构 list源码2(参考STL源码--侯捷):constructor、push_back、insert list源码3(参考STL源码--侯捷):push_front、push_back、erase、pop_front、pop_b
阅读全文
摘要:list源码1(参考STL源码--侯捷):list节点、迭代器、数据结构 list源码2(参考STL源码--侯捷):constructor、push_back、insert list源码3(参考STL源码--侯捷):push_front、push_back、erase、pop_front、pop_b
阅读全文
摘要:list源码1(参考STL源码--侯捷):list节点、迭代器、数据结构 list源码2(参考STL源码--侯捷):constructor、push_back、insert list源码3(参考STL源码--侯捷):push_front、push_back、erase、pop_front、pop_b
阅读全文
摘要:list源码1(参考STL源码--侯捷):list节点、迭代器、数据结构 list源码2(参考STL源码--侯捷):constructor、push_back、insert list源码3(参考STL源码--侯捷):push_front、push_back、erase、pop_front、pop_b
阅读全文
摘要:vector源码1(参考STL源码--侯捷) vector源码2(参考STL源码--侯捷):空间分配、push_back vector源码(参考STL源码--侯捷) 空间分配导致迭代器失效 vector源码3(参考STL源码--侯捷):pop_back、erase、clear、insert pop_
阅读全文
摘要:智能指针 在智能指针中shared_ptr用来计算指向对象的指针的个数,但是如果先执行shared_ptr1=shared_ptr2,再执行shared_ptr2=shared_ptr1,这样shared_ptr1.count()和shared_ptr2.count()都为1,这就造成了循环引用,循
阅读全文
摘要:1、智能指针的作用 C++程序设计设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理内存可以提高程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存
阅读全文
摘要:昨天面试问了菱形继承的问题,回答的稀巴烂,回来赶快好好学习一波!!!!! 菱形继承如下图: 上一段代码: 可以看到,如果不利用域限定需要访问的函数,那么就会出现模糊调用的问题,但是貌似C++给了更好的方法,虚继承! 利用虚继承就可以解决菱形继承的问题,具体实现是:A和C中不再保存Base的具体内容,
阅读全文
摘要:输出: 可以发现因为空间分配的原因,该迭代器已经失效了!!!!,详细参考 源码2 。
阅读全文
摘要:vector源码1(参考STL源码--侯捷) vector源码2(参考STL源码--侯捷) vector源码(参考STL源码--侯捷) 空间分配导致迭代器失效 vector源码3(参考STL源码--侯捷):pop_back、erase、clear、insert vector的构造和内存管理 vect
阅读全文
摘要:vector源码1(参考STL源码--侯捷) vector源码2(参考STL源码--侯捷) vector源码(参考STL源码--侯捷) 空间分配导致迭代器失效 vector源码3(参考STL源码--侯捷):pop_back、erase、clear、insert vector概述 Vector是动态空
阅读全文
摘要:C++的封装: 封装的是实现面向对象的第一步,封装就是将数据、函数等集合在一个单元也就是类中,封装的目的是使得代码模块化;封装的意义在于增强安全性和简化编程,使用者不必了解具体的实现细节,而只是通过外部接口以及特定的访问权限来使用类成员。 C++定义了友元函数能够访问类中的私有函数:友元函数 eg:
阅读全文
摘要:C++与C的联系: C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性! C++在C的基础上增添类,
阅读全文
摘要:为了支持c++的多态性,才用了动态绑定和静态绑定。 1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。 2、对象的动态类型:目前所指对象的声明。在运行期决定。对象的动态类型可以更改,但是静态类型无法更改。 关于对象的静态类型和动态类型,看一个示例: 3、静态绑定:绑定的是对象的静态类型,
阅读全文

浙公网安备 33010602011771号