c++
zidan
这个作者很懒,什么都没留下…
展开
-
高效的C++ 库
我开始质疑自己对使用 C++ 的判断。于是我决定调查一下,看看使用 C++ 是好是坏。生产效率虽然 C++ 不是一种动态语言,但是现代的 C++(C++11/14)有类型推断。对于使用 C++ 编写代码存在很多误解,如,我们一定要使用原始指针来编写代码,一定要输入冗长的命名空间或者类型,一定要手动管理内存。C++ 使我们感到更高生产效率的一个关键特性是 auto 特性。我们不一定要输入冗长的命名空...转载 2018-07-04 15:43:16 · 597 阅读 · 0 评论 -
平衡查找树之红黑树
红黑树(Red-Black Tree)定义红黑树的主要是想对2-3查找树进行编码,尤其是对2-3查找树中的3-nodes节点添加额外的信息。红黑树中将节点之间的链接分为两种不同类型,红色链接,他用来链接两个2-nodes节点来表示一个3-nodes节点。黑色链接用来链接普通的2-3节点。特别的,使用红色链接的两个2-nodes来表示一个3-nodes节点,并且向左倾斜,即一个2-node是...转载 2018-08-23 15:33:38 · 166 阅读 · 0 评论 -
缓冲区溢出(Buffer Overflow)
堆栈溢出堆栈溢出通常是所有的缓冲区溢出中最容易进行利用的。了解堆栈溢出之前,先了解以下几个概念:缓冲区 简单说来是一块连续的计算机内存区域,可以保存相同数据类型的多个实例。 堆栈 堆 栈是一个在计算机科学中经常使用的抽象数据类型。堆栈中的物体具有一个特性:最后一个放入堆栈中的物体总是被最先拿出来,这个特性通常称为后进先出 (LIFO)队列。堆栈中定义了一些操作。两个最重要的是PU...转载 2019-01-14 11:13:55 · 12663 阅读 · 0 评论 -
基于数组的无锁队列(译)
1 引言最近对于注重性能的应用程序,我们有了一种能显著提高程序性能的选择:多线程.线程的概念实际上已经存在了很长时间.在过去,多数计算机只有一个处理器,线程主要用于将一个大的任务拆分成一系列更小的执行单元.以使得当其中某些执行单元因为等待资源而被阻塞的时候剩余的执行单元能继续执行。举个示例,一个网络应用程序,它监听一个TCP端口,当有外部请求到达时,处理请求.对于一个单线程的应用程序来说,只能...转载 2019-01-14 17:33:51 · 234 阅读 · 0 评论