色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

Hi,歡迎來到嵌入式培訓高端品牌 - 華清遠見教育科技集團<北京總部官網>,專注嵌入式工程師培養15年!
當前位置: > 華清遠見教育科技集團 > 嵌入式學習 > 講師博文 > 哈希表在QT中的應用舉例
哈希表在QT中的應用舉例
時間:2017-01-05作者:華清遠見

哈希表,是根據關鍵碼值(Key value)而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。

QHash是QT類庫中的一個容器類,內部維護了一張哈希表。QHash的內部哈希表每次翻倍增長,同時所有的內部元素都重新分配到桶內。計算公式為qHash(key)%QHash::capacity() (桶的個數)。下面通過一個例子,來說明QHash類的使用。

這個例子中的主窗口,類似QQ的好友列表,雙擊一個好友,彈出聊天對話框,標題顯示chat with +列表框中的內容。多次雙擊同一個好友,應該只有第一次彈對話框。

代碼為:

QString id = ui->listWidget->currentItem()->text();
        ChatDialog *dialog = new ChatDialog(id, this);
        dialog->show();

當多次雙擊同一個列表項時,如下圖所示,同樣的窗口彈出了多個,邏輯上不合理。

為了解決這個問題,需要用到哈希表,用到QHash類。

實現過程如下:

1) 首先,需要在界面類中,引入頭文件.

#include <QHash>

2) 在類中加入一個私有成員:

QHash<QString, ChatDialog *> chatFormHash;

3) 做信號和槽的關聯

QObject::connect(ui->listWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)),this, SLOT(newWindow()));

4) 實現newWindow()函數

QString id = ui->listWidget->currentItem()->text();
        ChatDialog *dialog;
        if (this->chatFormHash.contains(id))
        {
                dialog = chatFormHash.value(id);
        }
        else
        {
                dialog = new ChatDialog(id, this);
                this->chatFormHash.insert(id, dialog);
        }
        dialog->show();

列表框中的列表項字符串,作為哈希表中的key值,聊天窗口的地址做為哈希表的value.當哈希表中沒有某個key時,創建一個新窗口。當第二次,雙擊同一個列表項時,直接從哈希表中查找窗口的地址即可,不需要再次創建,就解決了上面的問題。界面如下:

發表評論
評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
主站蜘蛛池模板: 亚洲人成人无码.WWW石榴 | 又黄又大又爽A片三年片 | 人人爽天天碰天天躁夜夜躁 | 全球AV集中精品导航福利 | 老中医吮她的花蒂和奶水视频播放 | 成年人在线免费看的惊悚动作片 | 天天槽夜夜槽槽不停 | 国产美女视频国产视视频 | 三个男人躁我一个爽公交车上 | 日本视频又叫又爽 | 午夜免费观看_视频在线观看 | 免费乱码人妻系列无码专区 | 亚洲精品一区国产精品丝瓜 | 国产精品黄页免费高清在线观看 | 国产精品女人呻吟在线观看 | 中文字幕一区二区三区有限公司 | 久久草草亚洲蜜桃臀 | 日韩欧美亚洲国产精品字幕欠久久 | 特黄熟妇丰满人妻无码 | 手机看片久久国产免费 | 久久五月丁香激情综合 | av亚洲av影院av天堂 | 人妻少妇精品专区性色av | 看成年全黄大色黄大片 | 老师掀起裙子让我把j放进去视频 | 国产精品乱子乱XXXX | 日本特级a一片免费观看 | 狠狠色欧美亚洲综合色 | 亚洲熟妇无码AV在线观看 | 真实国产老熟女粗口对白 | 亚洲中文字幕无码一久久区 | 顶级欧美做受XXX000 | 国产白丝无码视频在线观看 | 四虎精品影库4HUTV四虎 | 一本大道中文日本香蕉 | 日韩系成人影片成首选 | A∨变态另类天堂无码专区 尤物麻豆亚洲av无码精品 | 伦理性生活 | 中文字幕一区二区三区人妻少妇 | 亚洲午夜久久久久久久久久 | 中文字幕在线网站 |