代码改变世界

如何求出数组中最小(或者最大)的k个数(least k问题)

2017-02-13 22:40 by jiayayao, 2583 阅读, 0 推荐, 收藏, 编辑
摘要:输入n个整数,如何求出其中最小的k个数? 解法1. 当然最直观的思路是将数组排序,然后就可以找出其中最小的k个数了,时间复杂度以快速排序为例,是O(nlogn); 解法2. 借助划分(Partition)的思路,一次划分可以把枢轴使得枢轴左边的元素都比枢轴小,枢轴右边的元素都比枢轴大(可以参考快速排 阅读全文

C++模板元编程

2017-02-10 22:09 by jiayayao, 3181 阅读, 0 推荐, 收藏, 编辑
摘要:原理:模板元程序由编译器在编译期解释执行,利用模板特化机制实现编译期条件选择结构,利用递归模板实现编译期循环结构。模板元编程(metaprogramming)意思是,编程系统将会执行a56爆大奖在线娱乐们所写的代码,来生成新的代码,而这些新代码才真正实现了a56爆大奖在线娱乐们所期望的功能。元编程最大的特点在于:某些用户自定义的计算可 阅读全文

算法的泛化过程(摘自《STL源码剖析》)

2017-02-08 22:13 by jiayayao, 1095 阅读, 0 推荐, 收藏, 编辑
摘要:将一个叙述完整的算法转化为程序代码,不是什么难事。然而,如何将算法独立与其所处理的数据结构之外,不受数据结构的羁绊呢?换个说法,如何将a56爆大奖在线娱乐们所写的程序算法适用于任何(或者大部分)未知的数据结构(比如array,vector,list等)呢? 关键在于,只要把操作对象的型别加以抽象化,把操作对象的标示法 阅读全文

使用Boost asio实现异步的TCP/IP通信

2017-01-08 21:23 by jiayayao, 16592 阅读, 1 推荐, 收藏, 编辑
摘要:可以先了解一下Boost asio基本概念,以下是Boost asio实现的异步TCP/IP通信: 服务器: 客户端: 阅读全文

Boost asio基本概念

2017-01-08 15:36 by jiayayao, 5427 阅读, 0 推荐, 收藏, 编辑
摘要:asio库基于操作系统提供的异步机制,采用前摄器模式(Proactor)实现可移植的异步(或同步)IO操作,不需要使用多线程和锁,有效避免多线程编程带来的诸多有害副作用(如竞争,死锁)。 asio封装了操作系统的select、kqueue、poll/epoll、overlapped I/O等机制,实 阅读全文

Boost信号/槽signals2

2017-01-03 20:18 by jiayayao, 10314 阅读, 1 推荐, 收藏, 编辑
摘要:信号槽是Qt框架中一个重要的部分,主要用来解耦一组互相协作的类,使用起来非常方便。项目中有同事引入了第三方的信号槽机制,其实Boost本身就有信号/槽,而且Boost的模块相对来说更稳定。 signals2基于Boost里另一个库signals实现了线程安全的观察者模式。signal中一个比较重要的 阅读全文

如何判定一颗树是完全二叉树和满二叉树

2016-12-25 00:23 by jiayayao, 9249 阅读, 0 推荐, 收藏, 编辑
摘要:满二叉树:一颗深度为k且有2^k-1个节点的二叉树称为满二叉树; 完全二叉树:对满二叉树的结点进行连续编号,约定编号从根结点起,自上而下,自左至右。深度为k的,有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树编号从1至n的结点对应时,称为完全二叉树。如图所示: 1. 判定完全二叉树。判 阅读全文

RTP与RTCP协议介绍(转载)

2016-12-24 21:41 by jiayayao, 2174 阅读, 0 推荐, 收藏, 编辑
摘要:RTSP发起/终结流媒体、RTP传输流媒体数据 、RTCP对RTP进行控制,同步。RTP中没有连接的概念,本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完成。RTSP可以对流媒体提供诸如播放、暂停、快进等操作,它负责定义具体的控制消息、操作方法、状态码等 阅读全文

TCP/IP之TCP_NODELAY与TCP_CORK

2016-12-24 16:35 by jiayayao, 1347 阅读, 0 推荐, 收藏, 编辑
摘要:TCP/IP之Nagle算法与40ms延迟提到了Nagle 算法。这样虽然提高了网络吞吐量,但是实时性却降低了,在一些交互性很强的应用程序来说是不允许的,使用TCP_NODELAY选项可以禁止Nagle 算法。禁止Nagle后应用程序向内核递交的a56爆大奖在线娱乐数据包都会立即发送出去。但是禁止Nagle,网络传 阅读全文

TCP/IP之Nagle算法与40ms延迟

2016-12-24 16:15 by jiayayao, 3387 阅读, 0 推荐, 收藏, 编辑
摘要:Nagle算法是针对网络上存在的微小分组可能会在广域网上造成拥塞而设计的。该算法要求一个TCP连接上最多只能有一个未被确认的未完成的小分组,在该分组确认到达之前不能发送其他的小分组。同时,TCP收集这些少量的分组,并在确认到来时以一个分组发出去。它的设计规则如下: (1)如果包长度达到最大报文长度( 阅读全文