最新文章

C++并发编程 _ 同步并发(Future)

C++并发编程 _ 同步并发(Future) 2

bingliaolong C++ 5年前 18 0

一次性事件 C++标准库模型将这种一次性事件称为期望future 当一个线程需要等待一个特定的一次性事件时,在某种程度上来说它需要知道这个事件在未来的表现形式。之后,这个线程会周期性的等待或检查,事件是否出发 在检查期间也会执行其他任务,直到对应的任务触发,而后等待期望的状态会变...

Duilib_概念&&标签

Duilib_概念&&标签

bingliaolong Duilib 5年前 7 0

概念 XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 标签没有被预定义。您需要自行定义标签。 XML 被设计为具有自我描述性。 XML 是 W3C 的推...

C++并发编程_同步并发(Condition_variable)

C++并发编程_同步并发(Condition_variable)

bingliaolong C++ 5年前 13 0

等待事件或其他条件 如果一个线程正等待着第二个线程完成一项任务,它有几个选择。 可以一直检测共享数据(由互斥量保护)中的标识,并且让第二个线程在完成任务时设置该标识。 浪费资源 使用std::this_thread::sleep_for(),让等待的线程在检查之间休眠一会儿 得到...

STL_stack

STL_stack

bingliaolong C++ 5年前 6 0

概述 stack是一种先进后出的数据结构,它只有一个出口。 stack允许新增元素,移除元素,取得最顶端元素。 SGI STL以deque作为缺省情况下的stack底层数据结构。 而stack是以底部容器完成其所有工作,具有这种“修改某物接口,形成另一种风貌”的性质的,称为配接器...

STL_deque

STL_deque

bingliaolong C++ 5年前 5 0

概述 vector是单向开口的连续线性空间,而deque则是一种双向开口的连续线性空间。 所谓双向开口,是指可以在头尾两端分别做元素的插入和删除操作。 区别 和vector相比: deque运行常数时间内对起头端进行元素的插入和移除操作 deque没有所谓的容量的概念,因为他是动...

C++并发编程 _ 共享数据

C++并发编程 _ 共享数据

bingliaolong C++ 5年前 9 0

概述 如果我们在线程间共享数据,我们需要设置规则,哪个线程可以访问数据的哪一位,什么时间以及如何将更改传达给关心数据的其他线程。 关键点 问题 从整体上来看,所以线程之间共享数据的问题,都是修改数据导致的。如果所有的共享数据都只读的,就没有问题,因为一个线程所读取的数据不受另一个...

创建型:单例模式

创建型:单例模式

概念 保证一个类仅有一个实例,并提供一个该实例的全局访问点 场景 应用程序的日志应用 读取配置文件 数据库连接池 多线程线程池 必须有一个类的实例,并且必须可以从一个著名的访问点访问它 当唯一的实例可以由子类扩展,并且客户端应该能够使用扩展的实例而无需修改其代码 实现 普通实现 ...

查找_二分查找

查找_二分查找

简述 也叫折半查找,性能优异。 但是所查找的数列必须是有序序列。 复杂度 时间复杂度 log2(N) 实现 非递归实现 递归实现 插值查找 二分查找每次都会计算出一个mid,然后拿这个mid的值去做比较 $$ mid = \frac{(low+high)}{2} $$ $$ mi...

排序_桶排序

排序_桶排序

简述 桶排序需要创建若干个桶来协助排序。 所谓桶,每个桶bucket代表一个区间范围,里面可以承载一个或多个元素。 复杂度 名称 最好 平均 最差 空间 稳定性 桶排序 n+k n nlog(n) n 是 实现 算法导论 桶排序思想,假设对数组A[p...r]排序,首先将这些元素...

扫一扫二维码分享