Qt 中的 O(1) 映射?
O(1) mapping in Qt?
如果我有一些名字,比如"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-complexity
如果我有一些名字,比如"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-complexity