自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 动态链接库和静态链接库

写在前面 动态链接库和静态链接库的对比总结主要内容 1 静态链接库的优点 (1) 代码装载速度快,执行速度略比动态链接库快;动态连接库需要寻址操作才能确定其中调用的函数,而静态链接库中的函数在编译时就确定了调用 的函数,因此,在效率上,动态库比较慢 (2) 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是...

2018-08-31 17:38:45 249

原创 字节对齐总结

写在前面 字节对其是面试笔试当中出现频率算是比较高的一个知识点。 在此总结一下。主要内容 例题:#pragma pack(2)class BU{ int number; union UBffer { char buffer[13]; int number; }ubuf; void fo...

2018-08-31 17:20:50 325

原创 nuion

写在前面 c++union类型 union的特殊点 union的用法 union在c++11之后的新的特点主要内容 union 是什么union是一种节省空间的类。是类和class一样定义出来的是一个类型。语法和class或者是struct差不多但是用法不同。 一个union可以有多个数据成员但是任意时刻只有一个数据成员可以使用,当给某个数据成员...

2018-08-31 16:50:42 327

原创 BFPRT算法(TOP-K问题)

写在前面 n个数取最大的m个 BFPRT算法(中位数之中位数) partion思想 快速排序主要内容n个数值选出最大m个数(3<m<n)的最小算法复杂度是?O(n)O(nlogn)O(logn)O(mlogn)O(nlogm)O(mn)我一开始选择的是nlogm。我想的是使用堆进行存储,开一个大小为m的堆将n个元素一个一个插入堆当...

2018-08-31 08:55:09 776

原创 MIT算法导论笔记(第一节课)

写在前面 最近想复习一下算法与数据结构的知识,正好准备看看MIT的算法导论这门课。 第一节课讲述一个问题 peak finding主要内容 问题1: 在一个一维的数组当中找到一个极大值,这个极大值的定义就是大于等于两边元素的值就是极大值,两端的值只要大于其有值的那一边的元素就算是极大值。这算是一个抛砖引玉的题目,最简单额思路就是遍历整个数组,一个元素一个元素的检查...

2018-08-30 19:42:40 342

原创 哈夫曼树总结

写在前面 哈夫曼树主要内容判定树: 在很多问题的处理过程中,需要进行大量的条件判断,这些判断结构的设计直接影响着程序的执行效率。 条件分支设置的有问题带来的效率是一样的。我们称判定过程最优的二叉树为哈夫曼树,又称最优二叉树。 定义哈夫曼树之前先说明几个与哈夫曼树有关的概念:路径: 树中一个结点到另一个结点之间的分支构成这两个结点之间的路径。 路径长度:路径上的分枝...

2018-08-30 15:48:58 2781

原创 c++ 拷贝控制

写在前面 c++的拷贝控制主要内容 合成析构函数 每当一个类未定义析构函数的时候,编译器会合成一个析构函数。 合成析构函数为空。 析构函数分为两个部分:函数体和析构部分。 函数体为空,在析构函数体执行完毕之后,成员会被自动销毁。成员是在析构函数体之外的隐含的析构阶段被析构的。 需要析构函数的类也需要拷贝和赋值操作因为一个类需要自定义析构...

2018-08-30 10:24:11 163

原创 ssh,非对称加密

写在前面 加密算法 非对称加密算法 RSA ssh 术语明文:没有加密的信息加密算法:加密算法本身都是公开的密钥:加密的过程当中需要用到的参数 密文:加密后的信息解密需要解密密钥进行解密加密解密的密钥可能不同 对称密钥加密:加密解密的密钥相同非对称密钥加密如何确认密钥值 密钥分发 公开密钥加密 是一种非对称的密钥加密每一个人...

2018-08-29 20:59:55 951

原创 c++11新特性:default,delete

写在前面 c++11的新特性: default和delete主要内容 default可以对具有合成版本的成员函数使用=default显示的要求编译器生成合成的版本,当在类内修饰从成员的声明的时候,合成函数将隐式的声明为内联函数。如果不需要合成的是内联的只需要在类定义的外部使用default进行声明。 阻止拷贝 delete虽然 大多数类都应该定义(显示的或...

2018-08-29 15:41:26 293

原创 c++ 直接初始化和拷贝初始化

写在前面 c++的初始化主要内容 拷贝初始化使用 = 进行的初始化时拷贝形式的初始化,编译器将等号右边的初始值拷贝到新创建的对象上去。这时将调用对象定义的各种构造函数进行操作,只要这些构造函数满足这样的调用就会被隐式的调用,但是被explicit修饰的构造函数将会禁止该构造函数进行这样隐式的调用。 直接初始化不使用=进行初始化的操作就是直接初始化采用()直...

2018-08-29 11:09:30 558

原创 Java synchronized锁住的是代码还是对象

synchronized锁住的是代码还是对象

2018-08-29 00:43:55 242

原创 值语义,引用语义对比理解

写在前面 值语义,引用语义主要内容值语义和引用语义的复合代表就是c++。 值语义(value sematics)指的是对象的拷贝与原对象无关,就像拷贝 int 一样。C++ 的内置类型(bool/int/double/char)都是值语义,标准库里的 complex<> 、pair<>、vector<>、map<&am

2018-08-29 00:41:13 2580

原创 select,poll,epoll深入理解!

写在前面 select,poll,epoll总结主要内容 io多路复用模型 IO multiplexing目的:因为阻塞模型在没有收到数据的时候就会阻塞卡住,如果一次需要接受多个socket fd的时候,就会导致必须处理完前面的fd,才能处理后面的fd,即使可能后面的fd比前面的fd还要先准备好,所以这样就会造成客户端的严重延迟。 为了处理多个请求,我们自然先想到用多...

2018-08-28 21:35:51 285

原创 inline关键字

写在前面 c++ inline关键字主要内容Tip: 只有当函数只有 10 行甚至更少时才将其定义为内联函数.定义: 当函数被声明为内联函数之后, 编译器会将其内联展开, 而不是按通常的函数调用机制进行调用. 优点: 当函数体比较小的时候, 内联该函数可以令目标代码更加高效. 对于存取函数以及其它函数体比较短, 性能关键的函数, 鼓励使用内联.结论: 一个较为合理的...

2018-08-28 20:17:31 210

原创 各种排序算法复杂度比较

写在前面 笔试题目当中会出现各种排序算法的比较,分为最好,最坏,平均情况的复杂度比较,在这里总结一下。主要内容 最好情况一般会这么问:在各自最优条件下以下算法复杂度最低的是看清题目的要求是问在最优的条件下,所以插入排序和冒泡排序是最优的为o(n)的复杂度。 冒泡排序这里为啥最好情况时o(n)? 冒泡排序的最坏和平均都是o(n*n),但是当原本的序列...

2018-08-28 19:44:24 38752

原创 python 程序执行原理

 Python是一门解释性语言,它的具体工作流程如下:    - 编译,形成.pyc或.pyo后缀的语言  - 放入解释器,解释器执行字节流(opecode)   和java字节码一样,他们都是基于栈进行解释的。 分析pyc文件一个 pyc 文件包含了三部分信息:Python 的 magic number、pyc 文件创建的时间信息,以及 PyCodeObject 对象。...

2018-08-27 21:38:15 1245

原创 python 原理理解笔记

变量实际上是一个字符串的符号,用来关联一个存储在内存中的对象。在 Python 中,会使用 dict(就是 Python 的 dict 对象)来存储变量符号(字符串)与一个对象的映射。那么赋值语句实际上就是用来建立这种关联,在这个例子中是将符号 a 与一个列表对象 [1, ‘python’] 建立映射。也就是说python维持这样一个字典,每定义一个变量就等于往字典里插入新的键值对。每次重...

2018-08-27 21:38:00 169

原创 事务恢复

写在前面 数据库事务恢复笔记。 问题内容访问速度快但是容易崩溃不稳定。 磁盘稳定但是访问速度慢。 解决将磁盘的数据页面读到内存缓冲区当中,以便计算机指令提供高速的随机访问。 一旦页面被读入内存的缓冲区,应该设法保存该页面以便不久之后的再次访问这样可以不用再访问磁盘,减少IO的开销。 后备缓冲允许系统接收到一个磁盘的页面的请求的时候,先将其...

2018-08-27 15:11:29 886

原创 右值引用

写在前面 c++ 11 新特性之一:右值引用概念。主要内容 左值和右值概念:在c++11 之前 是没有办法直接得到右值的引用只能使用常量引用获取右值。 比如const int &a = 1; 在这种情况下,右值不能被修改的。 那什么是左值什么是右值?C++( 包括 C) 中所有的表达式和变量,要么是左值,要么是右值。通俗的左值的定义就是非临时对象,那...

2018-08-26 23:47:48 512

原创 可变参数模板

写在前面 C++11的新特性–可变模版参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数。相比C++98/03,类模版和函数模版中只能含固定数量的模版参数,可变模版参数无疑是一个巨大的改进。然而由于可变模版参数比较抽象,使用起来需要一定的技巧,所以它也是C++11中最难理解和掌握的特性之一。虽然掌握可...

2018-08-26 23:08:46 1035

原创 tuple 类型

写在前面 STL当中的tuple类型主要内容 起因用过python等动态语言的人都应该知道,这类的语言函数都可以返回多个值,每个值可以是不同的类型的对象。同样Java和python当中都有可以装载不同类型的变长数组存在,Java当中是容器Array,python当中是列表list。 在c++当中没有提供一个方便的数据结构可以像这样实现不同类型的对象的打包。唯一能够...

2018-08-26 21:24:43 2068

原创 异常

写在前面 异常处理机制异常处理 什么是异常异常(Exception)是程序在运行时可能出现的会导致程序运行终止的错误。这种错误是不能通过编译系统检查出来的。常见的异常如下:系统资源不足。例如,内存不足,不可以动态申请内存空间;磁盘空间不足,不能打开新的输出文件等。用户操作错误导致运算关系不正确。例如,出现分母为0。数学运算溢出,数组越界,参数类型不能转换等。...

2018-08-26 14:55:40 233

原创 CSMA/CD

CSMA/CD Carrier Sense Multiple Access with Collision Detection 即带冲突检测的载波监听多路访问技术(载波监听多点接入/碰撞检测)。CSAM/CD的工作原理可概括成4句话,即先听后发,边发边听,冲突停止,随机延时后重发,具体过程如下。1)当一个站点想要发送数据的时候,它检测网络中是否有其他站点正在传输,即侦听信道是否空闲...

2018-08-24 23:15:44 1326

原创 交换机

交换机以太网交换机数据链路层设备 第二层设备以太网帧的存储和转发利用CSMA/CD 访问链路透明交换机 主机感受不到交换机的存在即插即用的设备自学习 无需配置 主机通过非共享的链路和交换机连接交换以太网交换机转发表。每一个交换机都有一个交换表 记录接口的MAC地址 和时间戳看起来很像路由器的路由表交换机获得到源MAC地址 将该地址和收到的接口对应起来。...

2018-08-24 23:13:37 238

原创 python 列表推导表达式,生成器

1.列表推导式书写形式:[表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]表达式部分作为正在存放在列表当中的元素。 for in 进行循环 if 进行筛选。 还可以使用多层循环>>> [m + n for m in 'ABC' for n in 'XYZ']['AX', 'AY', 'AZ', 'BX',...

2018-08-24 22:55:53 308

原创 python类与c++类对比

写在前面 本文将从类的角度讨论python和c++在语法层面和使用层面的不同主要内容 语法方面:先看c++类的一个简单的例子:class A {public: int i; void test() { std::cout << i << endl; }};.....A a;a.i = 1...

2018-08-24 22:05:05 7940 2

原创 DHCP协议和NAT技术

DHCP协议主机如何获得IP地址 静态配置默认网关:这个子网的数据报要离开这个子网的时候,应该把它送到路由器哪个接口进行转发。这个路由器的这个接口的ip就成了这个子网的所有的主机的默认网关。如果有其他的路由器也可以连接到外部网络那么可以有多个默认网关可选。默认域名服务器:应该把域名解析发送给哪个服务器 动态地址配置:动态主机配置协议:dynamic host configurati...

2018-08-24 15:01:17 2301

原创 更新事务

写在前面 事务的ACID性质当系统上进程没有活动的事务的时候,一个事务就可以开始。当事务处于执行状态的时候,他所做的任何更新对于并行用户是不可见的,并且数据读不能被更新。关于事务的执行有两条语句 第一条: exec sql commit work;程序员使用这条语句告知系统当前的事务已经完成成功,事务所做的更新在数据库将永久的保存并对并行用户可见。 第二条: exec...

2018-08-24 14:53:59 673

原创 c++和闭包

写在前面 之前理解了python当中的闭包的概念和使用,虽然对比而言c++不支持函数的嵌套定义但是c++可否也实现闭包的功能呢?主要内容闭包有很多种定义,一种说法是,闭包是带有上下文的函数。说白了,就是有状态的函数。更直接一些,不就是个类吗?换了个名字而已。 一个函数, 带上了一个状态, 就变成了闭包了. 什么叫 “带上状态” 呢? 意思是这个闭包有属于自己的变量, 这些个变量...

2018-08-23 23:03:15 870

原创 python作用域

写在前面 python的作用域的概念主要内容 作用域即范围  全局范围(内置名称空间与全局名称空间属于该范围):全局存活全局有效  局部范围:函数调用时存活,调用结束时失效,局部有效可以通过dir()函数查看当前的作用域下的有效的符号名称。函数的作用域是在函数定义的时候限定的,不是在函数被调用的时候决定的。...

2018-08-23 21:22:12 209

原创 闭包

写在前面 其实闭包这个词在很多的地方都听到过,以前看到说这是前端javascript这门语言的所具有的特点。当时不知所以然也没接触到对应的概念,现在遇到一个问题就是,为什么c++不支持函数的嵌套定义?对比python,在python当中可以在函数体的内部定义别的函数,这项技术(或者成为语法支持)为什么c++里没有,这样的做法有什么作用呢? 如果你刚好对这方面有和我一样的疑问,那么请往...

2018-08-23 21:16:02 362

原创 c++ 嵌套类 局部类

写在前面 嵌套类 函数的嵌套定义是否可以主要内容 什么是嵌套类在一个类中定义的类被称为嵌套类,定义嵌套类的类被称为外部类。 为什么使用嵌套类对类进行嵌套通常是为了帮助实现另一个类,并避免名称冲突。 往往是因为外围类需要使用嵌套类对象作为底层实现,并且该嵌套类只用于外围类的实现,且同时可以对用户隐藏该底层实现。class A{public:...

2018-08-23 20:21:23 283

原创 数据库索引(B树,B+树)

SQL查询提交给数据库系统的时候,一个查询优化器的软件模块将对查询进行非过程命令进行分析。这一章通过阐述查询如何利用数据库索引来提高访问表的数据的效率。索引,与驻留在内存当中的数据结构有些类似。 目的是提高对表当中的行的数据的查找效率。 这些数据结构包括:二叉树,2-3树,散列表数据库的索引包含的数据量比一次能够调入内存的数据量大。 所以数据库的索引的数据只能放在磁盘...

2018-08-22 15:22:00 987

原创 STL 配接器

写在前面 STL配接器主要内容 配接器是什么?配接器这个概念其实是一种设计模式。将一个类的接口转换为另一个类的接口,使原本接口不相兼容的类可以一起运作。 配接器的分类函数配接器容器配接器迭代器配接器 容器配接器STL提供两种容器配接器:stack和queue。他们都是修饰deque接口而构成另一种风格的容器面貌。 迭代器配接器...

2018-08-22 00:21:50 630

原创 STL:仿函数

写在前面 STL当中的仿函数主要内容 函数对象和仿函数仿函数是早期的命名,采用的新的名称是函数对象。 函数对象就是一种具有函数特质的对象。 这种东西在调用者可以像函数一样被调用,在被调用者则以对象所定义的()操作符扮演函数的实质角色。 仿函数的作用第一个版本表现在最常用的某种运算 第二个版本表现在最泛化的演算流程,允许用户已模板参数来指定所要采取的策...

2018-08-21 19:33:07 274

原创 数据库事务的 隔离原子持久性

主要知识点总结事务的概念:保证其他的用户所做的修改不会破坏结果需要将一组SQL语句捆绑在特定的不可分割的称之为事务的包内。本章提供在嵌入式SQL程序当中实现任何算法所需的技术 记住这些技术不是主要的目标,能够知道每一个功能在应用程序当中起到的作用才是重要的。也就是对于数据库的引擎的函数调用 先声明宿主变量获取数据库返回的值建立和数据库的连接 传入用户名和密码认证断...

2018-08-21 19:02:18 389

原创 Sublime Text配置python解释器

参考Sublime Text如何运行Python文件点击菜单栏中的Tools —> Build System —> New Build System将如下内容复制到 sublime_build中,替换原有的{ "env": { "PATH":"C:/Python36/python.exe;%PATH%" }, "shell_cm...

2018-08-21 15:55:19 1890

原创 STL:heap

写在前面 STL:heap主要内容 heap是什么heap并不是STL的容器,是以算法的方式出现的。扮演priority_queue的幕后英雄。 priority_queue采用的底层机制就是heap。这里需要注意heap并不是一种二叉搜索树,更不是平衡的二叉搜索树比如AVL树和红黑树。 heap其实是一种完全二叉树。 完全二叉树:除了最低风层的叶子结...

2018-08-21 11:43:27 336

原创 数据流中的中位数

写在前面 剑指offer:数据流中的中位数题目要求 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。解法class Solut...

2018-08-21 00:40:22 161

原创 二叉树遍历迭代实现

写在前面 剑指offer:二叉搜索树的第k个结点 总结二叉树的前序遍历和中序遍历的迭代实现。题目要求 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。解法class Solution {public: TreeNode* KthNode(TreeNode* pR...

2018-08-20 23:47:46 1803 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除