heap不属于STL容器,它扮演者priority queue的助手。heap是一种完全二叉树,可由数组来实现,但heap需要动态改变大小,所以最终选择了vector作为底层容器。STL默认提供最大堆。
题外话:分析heap的源码就能清楚的理解堆这种数据结构的例程,而STL库代码的质量又很高,所以看堆的代码,STL源码是一个很好的选择。
为了满足完全二叉树的性质,新插入的元素一...
分类:
其他好文 时间:
2014-07-22 23:04:53
阅读次数:
363
在有些场景下,数据中心会分为不同的服务器场:数据库场和应用程序场。服务器场间有严格的防火墙控制,其中数据库场只能建立从应用程序场的防火墙穿越,也就是说不允许任何客户端直接连接到防火墙。
这种策略对于数据库引擎来说没什么问题,但是对于分析服务来说就被完全限制住了,通常我们都是通过Excel直接连接分析服务数据库的,并且通过分析服务的角色来控制对数据的访问权限。那么是否有什么方法可以解决这个问题呢?...
分类:
其他好文 时间:
2014-07-22 23:03:34
阅读次数:
442
运行脚本时出现了这样一个错误,打开之后并没有找到所谓的^M,查了之后才知道原来是文件格式的问题,也就是linux和windows之间的不完全兼容。。。具体细节不管,如果验证:vim
test.sh:set ff?如果出现fileforma=dos那么就基本可以确定是这个问题了。:set filefo...
分类:
其他好文 时间:
2014-07-22 23:00:13
阅读次数:
243
MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面...
分类:
数据库 时间:
2014-05-01 20:26:09
阅读次数:
574
C++和java都号称是面向对象的语言,虽然C++不完全算是。学习过C++如何快速对java有个大体的掌握,可以通过对比来进行了解。
首先还是来高大上一下,看看他们的使命: · C++
被设计成主要用在系统性应用程序设计上的语言,对C语言进行了扩展。对于C语言这个为运行效率设计的过程式程序设...
分类:
编程语言 时间:
2014-05-01 20:15:35
阅读次数:
513
在memory.c里面,遇到一个宏定义,如下:
#define CODE_SPACE(addr) ((((addr)+4095)&~4095) start_code + current->end_code)
看的第一眼,不知道,第二眼,还是不知道,纠结了半天还是不知道。
睡了一晚,今天早上再看,嘿嘿,居然看懂了。。。
这个宏定义用于判断给定的addr线...
分类:
系统相关 时间:
2014-05-01 17:54:09
阅读次数:
516
类--类作用域引言: 每个类都定义了自己的新作用域与唯一的类型。即使两个类具有完全相同的成员列表,它们也是不同的类型。每个类的成员不同与任何其他类(或任何其他作用域)的成员。class First
{
public:
int memi;
double memd;
};
class Second
{
public:
int memi;
double memd;...
分类:
编程语言 时间:
2014-04-30 22:26:39
阅读次数:
403
在快速阅读中,最基本,也是最核心的部分,就是要将我们传统的点式阅读变成组块阅读.这里的组块可以是词组,半行,整行,整段,整页.
不要觉得整段甚至是整页的阅读是不可能的,从生理上看,作为高等动物的我们完全做的到。
下面来看一下可以速读的原理:
了解这之后,我们就可以从心理上消除对快速阅读的恐惧...
分类:
其他好文 时间:
2014-04-30 22:15:39
阅读次数:
269
前序:
(二叉)堆数据结构是一种数组对象,它可以被视为一棵完全二叉树。树中每个节点与数组中存放该节点值的那个元素对应。
树的每一层都是填满的,最后一层除外。
树的根为a[1] (在这里是从1开始的,也可以从0开始),给定了某个节点的下标i,其父节点为i/2,左二子为2*i,右儿子为2*i+1。
二叉堆满足二个特性:
1.父结点的键值总是大于或等于(小于或等于)任何一个...
分类:
其他好文 时间:
2014-04-30 22:15:38
阅读次数:
434