- 博客(8)
- 收藏
- 关注
原创 红黑树 修复
插入插入染红,其中叔父如下情况,祖父必黑。 []内表示为上层节点的那一侧。当插入造成不平衡情况 D为left为列 - 情况1:父红,叔红 - 情况2:父红[D] , 叔黑,新节点外侧[D] - 情况3:父红[D], 叔黑,新节点内测[!D]修复过程为1->2->3修复方式为旋转 (与AVL tree LL,RR 单旋转一致)变色 (即改变红黑)修复
2017-11-24 17:23:02 846
原创 STL源码剖析笔记(序列式容器)
Vectorvector的迭代器vector 提供的是Random Access Iterators ,迭代器具备的操作有operator*,operator->,operator++,operator–,operator+, operator-, operator+=,operator-=vector的数据结构 vector 使用线性连续空间, start finish迭代器指向连
2017-11-20 17:24:16 592
转载 字典(汇编指令 & INT 21H)
汇编指令AAA未组合的十进制加法调整指令 AAA(ASCII Adgust for Addition) 格式: AAA 功能: 对两个组合的十进制数相加运算(存在AL中)的结果进行调整,产生一个未组合的十进制数放在AX中.说明: 1. 组合的十进制数和未组合的十进制数:在计算中,十进制数可用四位二进制数编码,称为BCD码. 当一个节(8位)中存放一位BCD码,且放在字节的低4位, 高4位为时
2017-11-16 18:52:20 1674
原创 STL源码剖析笔记(迭代器)
STL经常需要获取迭代器型别来进行一系列算法设计,简单总结一下书所对于型别推导提到的思想迭代器获取其所指元素的型别 1. 一 利用 function template 的自变量推导( argument deducation)机制。template <class I, class T>void func_impl(I iter, T t){ T tmp; // 这里解决了问题。 T就是迭
2017-11-12 17:22:22 425
原创 模板类 的完美转发
在写一个list容器,之前很少写过模板东西,起初我认为和普通函数一样,但实际中遇到了一些问题如下函数 错误的万能引用template <typename T>class A{ func(T &&value);}实际上 由于T是模板类的关系,这样写在func中 T不能起到推导作用,func的参数只是一个普通的右值引用参数 在模板类中实现万能的引用函数。即完美转发,需要再使用一个新
2017-11-11 20:28:58 772
原创 STL源码剖析笔记(空间适配器)
stl_construct.hconstruct()#include <new.h> //欲使用placement new,需先含入此文件template <class T1, class T2>inline void construct(T1* p, const T2& value) {new (p) T1(value) ; //placement new; 唤起 T1::T1(value
2017-11-08 21:21:06 410
原创 C语言常量字符串
关于C语言字符串常量不可修改,因为之前懂得的比较浅,起初误认为是编译器 把这样的代码char *s=""str";优化成了 const char*="str". const属性也去不了。但是实际上是与常量字符串的内存体现有关。bodata段各类段bss段: BSS段(bsssegment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文BlockStarted by S
2017-11-08 19:47:01 1619
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人