![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程语言
古月潇雨
目前在苦逼学习中
展开
-
关于SET和UNORDER_SET
最近做刷题,需要用到一个互斥且递增的容器。顺手就写了一个unordered_set,然后调了很久最后发现得用set那么他们的区别是什么? 顾名思义,unordered_set容器中的key是无序的,就不满足上述递增要求了,而set能保证容器中key有序。他们的区别要从底层实现说起。为什么set能保持有序,因为底层基于RB-Tree,天然的有序结构,而unordered_set底层则是hashtab...转载 2018-05-11 16:37:32 · 460 阅读 · 0 评论 -
关于多态
多态又分为静态多态和动态多态。静态多态其实就是函数重载,动态多态就是一般我们所说的多态。多态作为面向对象的三大特征之一,需要另外两大特征:封装、继承的支持。本文主要讲讲,我看了一点《深度探索C++模型》总结多态是怎样实现的。1.C++内存布局C++对象主要可以有如下几种成员:(1)数据成员①static数据成员②nonstatic数据成员(2)函数成员①static函数成员②nonstatic函数...转载 2018-06-27 07:21:05 · 162 阅读 · 0 评论 -
红黑树边界问题
SGI STL红黑树中迭代器的边界值分析前言 一段程序最容易出错的就是在判断或者是情况分类的边界地方,所以,应该对于许多判断或者是情况分类的边界要格外的注意。下面,就分析下STL中红黑树的迭代器的各种边界情况。(注意:分析中STL使用的版本是SGI STL,由于不同的版本的STL具体实现细节不一样,所以可能会有出入)。 一、begin()获取第一个迭代器的自减 ...转载 2018-08-18 16:00:56 · 224 阅读 · 0 评论 -
迭代器的使用
目录迭代器的使用 迭代器的种类 迭代器的失效 迭代器的实现1.迭代器的使用 为了提高C++编程的效率,STL中提供了许多容器,包括vector、list、map、set等。有些容器例如vector可以通过脚标索引的方式访问容器里面的数据,但是大部分的容器不能使用这种方式,例如list、map、set。STL中每种容器在实现的时候设计了一个内嵌的iterator类,不同的...转载 2018-08-17 15:57:36 · 3418 阅读 · 0 评论 -
STL底层实现
C++ STL容器底层数据结构总结wenmingxing 关注2018.03.19 17:15* 字数 1176 阅读 426评论 0喜欢 5STL 就是所谓的标准模板库(Standard Template Library),这可能是C++程序员的一大利器。总的来说,STL包括几个部分:容器,算法(泛型算法),迭代器三个主要部分(当然还包含仿函数,适配器等其他部分),下图说明了...转载 2018-08-17 16:53:03 · 6799 阅读 · 2 评论 -
虚拟继承
1.为什么需要虚继承如下图所示如果访问Der::Fun or Der::m_nValue就会带来二义性,无法确定是调用Base1的还是Base2的,所以为了解决多重继承情况下成员访问的二义性,引入了虚继承机制。一般继承:虚继承:2.虚继承实现在虚继承下,Der通过共享虚基类SuperBase来避免二义性,在Base1,Base2中分别保存虚基类指针,Der继承Base1,Base...转载 2018-09-03 10:16:07 · 170 阅读 · 0 评论 -
C++面经大全
作者:一个offer都没有的菜鸡链接:https://www.nowcoder.com/discuss/125248来源:牛客网 楼主菜鸡一只,是真的菜,我是转软件的,所以学的很浅,面试根本经不起深挖,研一荒废了半年,春节之后才意识到要开始找工作,然后就开始疯狂的学习数据结构算法,计网,OS啥的,学的很水,前后投了20多家,最终就拿了4个小厂的offer,大厂真的一个都没过,是真的应证了...转载 2018-10-10 16:40:20 · 27228 阅读 · 4 评论