仿函数,又称为函数对象,即一种具有函数特质的对象,指的是那些可以被传入其他函数或是从其他函数返回的函数。
Data Center Bridging
最近,在参与一个数据中心-云存储的项目,用到了DCB(Data Center Bridging,数据中心桥接)协议。现将学到的相关知识总结出来,以供同行交流,同时加深自己的理解。
C++ STL迭代器
我们知道,STL的中心思想在于:将数据容器和算法分开,彼此独立设计,最后再以一帖胶着剂将他们撮合在一起。容器和算法的泛型化,可分别通过C++的class templates和function templates达成目标,而如何设计出两者之间的良好胶着剂,是一个值得深究的问题。本文所要学习的迭代器(iterator)就是在STL中扮演粘胶的角色。
C++ STL空间配置器
最近准备结合《STL源码剖析》把学习的STL知识整理一遍,加深自己的理解的同时,也方便以后需要的时候查看。
浅谈tcp backlog
熟悉Linux网络(socket)编程的同学应该都记得,在服务端建立监听套接字的API int listen(int sockfd, int backlog);
中有一个参数backlog,通常称之为积压值。积压值用来描述一个固定长度的连接队列的大小,该队列用于TCP连接建立的过程中。
数据结构之线段树
线段树,又称为区间数,是一种二叉搜索树,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶节点。而对于线段树中的每一个非叶节点[a,b],它的左子树表示的区间为[a,(a+b)/2],右子树表示的区间为[(a+b)/2+1,b],因此线段树是平衡二叉树(结构平衡的二叉搜索树,即叶节点的深度差不超过1)。叶节点数目为N,即整个线段区间的长度。
Spin lock与Mutex
线程同步是多线程编程中最重要的问题之一,Linux下的POSIX threads库(Pthreads)是在Linux平台下进行多线程编程的一套API,其中线程同步最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程共享的临界区进行保护。
C++引用剖析
引用是C++对于C语言的一个强有力的补充,它是对象的别名,这里的对象是指广义的,不仅是用类、结构体等复杂类型来声明的变量,还包括用int,float等简单类型声明的变量。引用在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命期是不能被改变的,即自始至终只能依附于同一个变量。