我觉得为什么QMap实现了跳过列表数据结构而不是rb-tree? 有关并发数据结构和跳过列表优于rb-tree,优点和缺点的非常有趣SO thread。它确实是非常有用的链接,但QMap不是线程安全的,它不会进行任何互斥锁定,以便开箱即用同步访问。它需要包装或子类化。
对我而言,编写“手工制作”的滑雪列表而不是rb-tree并不简单,所以这也不是很明显。
在非线程安全的Qt容器的上下文中是否有任何kill-feature?
提前Tnx。答案 0 :(得分:3)
我曾经认为QMap的设计是线程安全的,因此可以实现为基于跳过列表的字典。显然这似乎不是原因。它更简单:"可执行文件中的代码更少,每个节点的内存更少。"
实际上,QMap曾经被实现为RB树。