色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時,創建一個新窗口。當第二次,雙擊同一個列表項時,直接從哈希表中查找窗口的地址即可,不需要再次創建,就解決了上面的問題。界面如下:

發表評論
評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
主站蜘蛛池模板: 欧美日韩一区二区三区视频 | 国产精品免费视频色拍拍 | 中文字幕在线中文 | 一二三四在线观看免费高清视频 | 亚洲AV无码专区在线 | 好男人资源在线www免费 | 天堂约啪 | 无码专区中文字幕无码 | 久久久综合九色合综 | 色欲AV亚洲午夜精品无码 | 少妇高清精品毛片在线视频 | 高潮VPSWINDOWS国产乱 | 亚洲日韩中文在线精品第一 | 少妇高潮av久久久久久 | 四虎影视免费在线观看 | VPS私人毛片免费 | 久久亚洲色WWW成人不卡 | 亚洲va欧美va国产综合 | 蜜臀av国内精品久久久夜夜蜜臀 | 久久精品熟女亚洲AV麻豆 | 色综合99久久久无码国产精品 | 精品国内在视频线2019 | 精品国产在天天在线观看 | 人妻AV中文系列 | 欧美多人片高潮野外做片黑人 | 又黄又粗暴的120秒免费GIF视频 | 小雪老师让我爽了一夜视频 | 嫩草影院国产 | 久久男人AV资源网站 | 亚洲精品毛A片久久久爽 | 国产成a人亚洲精品无码久久 | 免费A级毛片18禁 | 欧美 国产 日韩 另类 视频区 | h肉动漫无码无修6080动漫网 | 日本伦理片在线观看 | 少妇高潮惨叫喷水正在播放水 | 亚洲熟妇无码AV在线观看 | 四虎影视在线永久免费观看 | 欧美kkkk7777免费看 | 在教室伦流澡到高潮h麻豆 日本高清视频色欧www | 伊人精品久久久大香线蕉 |