Por que o QMap usa Skiplist em vez de rb-tree?
-
12-12-2019 - |
Pergunta
I Wounder Por que o QMap realizou sobre a estrutura de dados do SkiPlist e não RB-tree? Há muito interessante tão thread Sobre beniques de dados de concorrência e listas de skips sobre RB-Tree, prós e contras.É de fato, a caixa de diálogo de muito interese com links úteis, mas o QMap não é segura segura, ele não faz qualquer travamento mutex para sincronizar o acesso da caixa.Requer wrapper ou subclasse.
Para mim não é mais simples escrever a lista de skiped "feitos à mão" em vez de rb-tree, então isso não é óbvio também.
Existe algum recurso de matança no contexto do contêiner QT sem fio?
tnx com antecedência.
Solução
Eu já pensei também que o QMap é projetado para ser seguro e, portanto, implementado como um dicionário baseado em lista de pular.Aparentemente, isso não parece ser o motivo.É muito mais simples: "Menos código na memória executável e menos por nó."
De fato, QMap uma vez foi implementado como uma árvore RB.