- 博客(14)
- 资源 (6)
- 收藏
- 关注
转载 动态分配内存之new
动态分配内存之new 首先:为什么需要动态定义数组呢? 这是因为,很多情况下,在预编译过程阶段,数组的长度是不能预先知道的,必须在程序运行时动态的给出 但是问题是,c++要求定义数组时,必须明确给定数组的大小,要不然编译通不过 如: int Array[5];正确 int i=5; int Array[i]; 错误 因为
2015-08-31 17:53:30 737
转载 可变参数原理
先来看看一个实现代码:#include #define va_list void*#define va_arg(arg, type) *(type*)arg; arg = (char*)arg + sizeof(type);#define va_start(arg, start) arg = (va_list)(((char*)&(start)) + sizeof(s
2015-08-31 11:21:25 474
转载 哈希表 hash_map 以及 map与hash_map的比较
C++ STL中哈希表 hash_map介绍这里列几个常见问题,应该对你理解和使用hash_map比较有帮助。4.1 hash_map 和 map的区别在哪里?构造函数。hash_map需要hash函数,等于函数;map只需要比较函数(小于函数).存储结构。hash_map采用hash表存储,map一般采用红黑树(RB Tree)实现。因此其memory数据结构是不
2015-08-28 11:52:27 572
转载 类模板Template
一、类模板定义及实例化1. 定义一个类模板:View Code1 templateclass 模板参数表>2 3 class 类名{4 5 // 类定义......6 7 }; 其中,template 是声明类模板的关键字,表示声明一个模板,模板参数可以是一个,也可以是多个,可以是类型参数 ,也可以是非类型参数。类型参数由关键字class
2015-08-28 11:03:01 566
转载 Linux内存管理 Slab分配器
采用伙伴算法分配内存时,每次至少分配一个页面。但当请求分配的内存大小为几十个字节或几百个字节时应该如何处理?如何在一个页面中分配小的内存区,小内存区的分配所产生的内碎片又如何解决?Linux采用Slab。Linux 所使用的 slab 分配器的基础是 Jeff Bonwick 为 SunOS 操作系统首次引入的一种算法。Jeff 的分配器是围绕对象缓存进行的。在内核中,会为有限的对象集(例
2015-08-27 22:29:29 341
转载 linux高级编程基础系列:线程间通信
线程间通信机制:线程是一种轻量级的进程。进程的通信机制主要包括无名管道、有名管道、消息队列、信号量、共享内存以及信号等。这些机制都是由linux内核来维护的,实现起来都比较复杂,而且占用大量的系统资源。线程间的通信机制实现起来则相对简单,主要包括互斥锁、条件变量、读写锁和线程信号等。本文会对以上所涉及的线程间的通信机制一一展开。互斥锁通信机制:1、互斥锁基本
2015-08-25 22:02:11 411
转载 STL中map、set的数据结构及底层实现
摘要:本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分析了map, set的优势之处。对于希望深入学习STL和希望了解STL map等关联容器底层数据结构的朋友来说,有一定的参考价值。STL map和set的使用虽不复杂,但也有一些不易理
2015-08-22 10:54:47 569
转载 平衡查找树之B树
平衡查找树之B树前面讲解了平衡查找树中的2-3树以及其实现红黑树。2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key。维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运行进行查找、顺序读取、插入和删除的数据结构。B树,概括来说是一个节点可以拥有多于2
2015-08-19 11:32:23 345
转载 平衡查找树之红黑树
平衡查找树之红黑树另外,关于红黑树与平衡二叉树的区别,它们的区别在概念上也有,但是在性能上也有,平衡二叉树也是在最坏的情况下有高效的,但是它追求整体的平衡,使得调整树时,会要很长的时间复杂度,而红黑树是局部平衡,调整时只要0(logn)颜色变量,并且调整不超过三次。前面一篇文章介绍了2-3查找树,可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,
2015-08-19 11:24:54 370
转载 系统调用与库函数调用的区别
系统调用与库函数调用的区别 2011-07-05 16:10:15分类: LINUX1、系统调用和库函数的关系系统调用通过软中断int 0x80从用户态进入内核态。函数库中的某些函数调用了系统调用。函数库中的函数可以没有调用系统调用,也可以调用多个系统调用。编程人员可以通过函数库调用系统调用。高级编程也可以直接采用int 0x80进入系统调用,而不必
2015-08-17 21:48:06 427
转载 文件描述符和文件指针的区别
文件描述符和文件指针的区别 2011-07-05 16:05:52分类: LINUX文件描述符:在linux系统中打开文件就会获得文件描述符,它是个很小的正整数。每个进程在PCB(Process Control Block)中保存着一份文件描述符表,文件描述符就是这个表的索引,每个表项都有一个指向已打开文件的指针。 文件指针:C语言中使用文件指针做为I/O的句柄
2015-08-17 21:35:14 388
转载 最大似然估计
最大似然估计总结笔记最大似然估计学习总结------MadTurtle1. 作用在已知试验结果(即是样本)的情况下,用来估计满足这些样本分布的参数,把可能性最大的那个参数作为真实的参数估计。2. 离散型设为离散型随机变量,为多维参数向量,如果随机变量相互独立且概率计算式为P{,则可得概率函数为P{}=,在固定时,上式表示的概率;当已知的时候,它又变成的函数,可以
2015-08-10 21:44:53 489
转载 协方差矩阵
浅谈协方差矩阵一、统计学的基本概念统计学里最基本的概念就是样本的均值、方差、标准差。首先,我们给定一个含有n个样本的集合,下面给出这些概念的公式描述:均值:标准差:方差:均值描述的是样本集合的中间点,它告诉我们的信息是有限的,而标准差给我们描述的是样本集合的各个样本点到均值的距离之平均。以这两个集合为例,[0, 8, 12, 20
2015-08-05 20:53:53 1738
转载 最长上升子序列O(nlogn)算法
最长上升子序列O(nlogn)算法上个月参加腾讯校园招聘的笔试,填空部分有一道题问:计算最长上升子序列的最快算法的时间复杂度和空间复杂度是多少?例如序列:{1 4 2 3 7 6 5 7}的最长上升子序列是{1 2 3 6 7},长度为5。此题的答案是O(nlogn)和O(n),在这之前我只了解n^2的算法,没有看过nlogn的算法,到网上搜索发现对
2015-08-05 00:28:50 459
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人