7

QMapがrb-treeではなくスキップリストのデータ構造で実現したのはなぜですか?並行性データ構造体とスキップリストの利点については、rb-tree、長所、短所よりも非常に興味深いSOスレッドがあります。それは確かに有用なリンクを備えた非常に興味深いダイアログですが、QMapはスレッドセーフではなく、箱から出してアクセスを同期するためのミューテックスロックを行いません。ラッパーまたはサブクラス化が必要です。

私にとっては、rb-treeの代わりに「手作り」のスキップリストを書くのは簡単ではないので、これも明らかではありません。

スレッドセーフではないQtコンテナのコンテキストでkill機能はありますか?

事前にTnx。

4

1 に答える 1

3

QMap はスレッドセーフになるように設計されているため、スキップ リスト ベースの辞書として実装されていると考えたこともあります。どうやらこれが原因ではないようです。「実行可能ファイルのコードが少なくなり、ノードあたりのメモリが少なくなる」というのは、はるかに単純です。

実際、QMap はかつて RB ツリーとして実装されていました。

出典: Qt Quarterly 19、セクション「連想コンテナ」

于 2012-10-01T11:52:43.570 に答える