如果我有一些像“jenny”“kevin”“miki”这样的名字......他们每个人都有相应的QWidget来显示他们的信息。是否可以从名称到QWidget进行O(1)映射?
Aka,给出一个名称是否可以在固定时间内获取相应的QWidget?
(我正在做一个中央数据显示应用程序,每个人都会向我发送一个包,包括他的姓名和gps位置。我需要更新他相应的显示小部件。是否可以在O(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