随笔分类 -  C

fd_set
摘要:注:网络编程 用c写socketselect()函数主要是建立在fd_set类型的基础上的。fd_set(它比较重要所以先介绍一下)是一组文件描述字(fd)的集合,它用一位来表示一个fd(下面会仔细介绍),对于fd_set类型通过下面四个宏来操作:fd_set set;FD_ZERO(&set);FD_SET(fd, &set);FD_CLR(fd, &set);FD_ISSET(fd, &set);过去,一个fd_set通常只能包含<32的fd(文件描述字),因为fd_set其实只用了一个32位矢量来表示fd;现在,UNIX系统通常会 在头文件<s 阅读全文

posted @ 2012-03-07 13:34 sshic 阅读(802) 评论(0) 推荐(0)

二项式堆(Binomial Heap)
摘要:在计算机科学中,Binomial Heap类似于二叉堆但是支持两个堆的快速合并。这是通过一个特殊的树结构完成的。binomial tree定义0阶的 binomial tree是一个结点。k阶的 binomial tree有如下特点:k阶的Binomial Heap的根节点依次是k-1,k-2,...,0(以此顺序)阶 binomial tree的根节点的父结点。k阶 binomial tree结构有2k个结点,高度为k。由于binomial tree独特的结构,一个k阶 binomial tree可以简单的通过合并两个k-1阶的 binomial tree来完成:将其中一个连接到另一个的最. 阅读全文

posted @ 2012-02-18 23:02 sshic 阅读(1812) 评论(0) 推荐(0)

容器函数deque
摘要:Deque总览deque和vector一样都是标准模板库中的内容,deque是双端队列,在接口上和vector非常相似,在许多操作的地方可以直接替换。假如读者已经能够有效地使用vector容器,下面提供deque的成员函数和操作,进行对比参考。Deque成员函数函数描述c.assign(beg,end)c.assign(n,elem)将[beg; end)区间中的数据赋值给c。将n个elem的拷贝赋值给c。c.at(idx)传回索引idx所指的数据,如果idx越界,抛出out_of_range。c.back()传回最后一个数据,不检查这个数据是否存在。c.begin()传回迭代器重的可一个数据 阅读全文

posted @ 2012-02-14 19:28 sshic 阅读(341) 评论(0) 推荐(0)

C语言预处理
摘要:所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。预处理是C语言的一个重要功能, 它由预处理程序负责完成。当对一个源文件进行编译时, 系统将自动引用预处理程序对源程序中的预处理部分作处理, 处理完毕自动进入对源程序的编译。 C语言提供了多种预处理功能,如宏定义、文件包含、 条件编译等。合理地使用预处理功能编写的程序便于阅读、修改、 移植和调试,也有利于模块化程序设计。本章介绍常用的几种预处理功能。宏定义 在C语言源程序中允许用一个标识符来表示一个字符串, 称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的... 阅读全文

posted @ 2012-02-14 16:35 sshic 阅读(526) 评论(3) 推荐(0)

导航