-
第四讲 STL相关的内容Hash Function 将hash函数封装成类对象 hash_val进行拆解传入参数,进行循环 每次拆解一个参数,都需要更新种子 TR1的工具,)0x9e3779b9是黄金比例数字0.618 测试 当没有指定hash函数时,用默认的hash函数,但是针对特殊的类型,有自己特化的hash函数![](http://i.imgur.com/KY0LFM5.png)tuple用例 测试 实现,递归的继承实现自动添加任意多个函数,需要有终止条件无参数偏特化...…
-
第三讲 标准库内核分析-算法 标准库算法形式iterator分类 不同容器iterator类型不同 测试iterator类型```C++#include // std::cout#include // std::iterator_traits#include // typeidnamespace jj33{void _display_category(random_access_iterator_tag){ cout << "random...…
-
第二十三节 容器hashtable探索 hashtable冲突(碰撞)处理 rehash时,篮子扩充两倍,找到其附近的质数,重新计算元素位置 内部扩充的数据已经预定好,53->97->…. hashtable实现 iterator要实现当当前node链表结束,要能进入到下一个buckets hashtable使用 模板参数的形式 容器hashtable中hashfunction hash{}的偏特化实现 hashtable使用C++11–unordered容...…
-
第十九节 容器rb_tree Red-Black tree是自平衡二叉搜索树。 rb_tree的封装 清楚传入模板的参数列表;然后构建了一个虚空结点header KeyOfValue表示怎么从value中取出key identity函数(Gnu C独有)就是表示同一个数的意思 handle-body,采用OOP的思想,构建G4.9 一个红黑树的大小为4个字节容器set,multiset set、multiset元素的value和key合一,value就是key. 容器se...…
-
第十八节 深度探索deque上 duque内存结构 分段连续,用户看起来是连续的 迭代器为了维持连续的状态,每次++,–都需要判断当前buffer是否用完,若用完则需要通过控制中心跳到下一个buffer 控制中心的map是指向vector的,以后也是2倍增长 deque iterator迭代器实现,关键有指向map的指针 deque<T>::insert讲解 很好体现deque的灵活性 要判断插入位置离首尾那个近一些,插入操作涉及元素搬移第十九节 深度探索deq...…
-
关系模型之代数关系什么是关系代数 并,差,笛卡尔积,选择,投影,更名等操作 关系代数操作:集合操作,纯关系操作 基本的动作:并,差,积,选择,投影关系代数之基本操作 并相容性,对应属性源自相同域,且属性数目相同。 并操作,或者的意义 差运算 广义笛卡尔积操作 选择操作 条件的书写,注意优先级次序:括号,非,且,或 投影操作 如果投影有重复元组时,则应该去掉重复的元组,满足关系的特性。 总结关系代数的扩展操作 ...…
-
数据库系统(上) 模型与语言 学习地址 数据库系统(上):模型与语言第一讲:认识数据库系统 everything over DB 抽象table: Database:相互之间有关联关系的Table的集合。 数据库系统由五部分组成 从用户角度看DBMS 数据库的定义 (DDL) 数据库的操作 (DML-data manipulation language) 数据库的控制 (DCL):由DBA定义控制信息,当用户访问的时候,DBMS...…
-
关系模型之基本概念 Table操作,Relation(关系) 关系代数和关系演算 数据语言和计算机语言的区别 用这些关系语言来表示复杂的检索需求。什么是关系 域,从列的角度看 元组及所有可能组合成的元组:笛卡尔积 所有集合:笛卡尔积 关系:有意义的集合,是笛卡尔积的子集 关系模式 关系模式和关系 回顾 关系的特性 列的同质:即每一列中的分量来自同一域,是同一类型的数据 ...…
-
网易云微专业数据库基础 学习地址 MySQL数据库基础(免费)认识MySql redis键值数据库,mongoDB文本数据库。 关系数据库和非关系数据库的主要区别:是否使用SQL语句作为数据操作的方法和方法 MySql最流行,开源,并非最先进的数据库 易于学习 应用程序开发者从用户那里获得数据,然后处理过后放到数据库中;或者根据用户的请求,访问数据库,将请求的数据返回给用户的过程。 学习目标安装MySql PC上安装MySql,window和ubun...…
-
第十六节 深度探索vectorvector源码剖析 vector内存2倍扩充,是在另外的地方重新申请内存,将数据搬过去 前闭后开区间 2倍扩充方法,reallocation insert_aux函数中再次判断,原因是可能有其他放元素的操作如insert 也要拷贝插入之后的数据,考虑到insert插入某个位置,红色框部分vector's iterator vector结点是连续的,iterator不需要是类,是个指针即可。 算法问的五种相关类型,通过iterator...…