Qt中的O(1)映射

O(1) mapping in Qt?

本文关键字:映射 中的 Qt      更新时间:2023-10-16

如果我有一些名字,比如"jenny"kevin"miki"。。。他们每个人都有一个相应的QWidget来显示他们的信息。有可能从名称到QWidget进行O(1)映射吗?

阿卡,给定一个名字,有可能在恒定时间内获取相应的QWidget吗?

(我正在做一个中央数据显示应用程序,每个人都会反复向我发送一个包含他的姓名和gps位置的包裹。我需要更新他相应的显示小部件。有可能在O(1)时间内完成每次更新吗?)

哈希表在最好的情况下确实有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-复杂性