我想知道为什么QMap实现了跳过数据结构而不是rb树?关于并发数据结构和跳过列表相对于rb- SO thread的好处,有非常有趣的优点和缺点。它确实是一个非常有趣的对话框,带有帮助式的链接,但QMap不是线程安全的,它不会为同步访问做任何互斥锁。它需要包装器或子类化。
对我来说,编写“手工”跳转列表而不是rb-tree并不简单,所以这也不是很明显。
在非线程安全的Qt容器的上下文中有什么终止特性吗?
提前使用Tnx。
发布于 2012-10-01 19:52:44
我也曾经认为QMap被设计成线程安全的,因此被实现为一个基于跳过列表的字典。显然,这似乎不是原因。它要简单得多:“可执行文件中的代码更少,每个节点的内存也更少。”
实际上,QMap曾经被实现为RB树。
来源:Qt Quarterly 19, Section "Associative Containers"
https://stackoverflow.com/questions/12671529
复制相似问题