Qt中的O(1)映射?

时间:2015-02-23 15:05:25

标签: c++ database qt database-design architecture

如果我有一些像“jenny”“kevin”“miki”这样的名字......他们每个人都有相应的QWidget来显示他们的信息。是否可以从名称到QWidget进行O(1)映射?

Aka,给出一个名称是否可以在固定时间内获取相应的QWidget?

(我正在做一个中央数据显示应用程序,每个人都会向我发送一个包,包括他的姓名和gps位置。我需要更新他相应的显示小部件。是否可以在O(1)时间内进行每次更新?)

1 个答案:

答案 0 :(得分:2)

哈希表在最佳情况下确实有O(1)查找:http://en.wikipedia.org/wiki/Hash_table

如果您想在Qt中使用,可以试试QHash。 http://doc-snapshot.qt-project.org/qt5-5.4/qhash.html

插入值很简单:

hash["jenny"] = myWidget;

并查找:

QWidget myWidget = hash["jenny"];

您可以在此处查看Qt容器的算法复杂性:http://doc-snapshot.qt-project.org/qt5-5.4/containers.html#algorithmic-complexity