㈠ qhash順序設置
1——創建,鍵值對的方式插入,數據類型隨意,這里以鍵int,值QString示例。
QHash<int,QString> qhash;
2——插入
//方式塌叢棚一
qhash[1] = "1";
qhash[2] = "2";
qhash[3] = "3";
//方式二
qhash.insert(4, 「4」);
通常,QHash 每個鍵只允許有一個值。如果用已經存在的鍵調用 insert(),先前的值將被刪除
qhash.insert(4,"10);
最後鍵為4的值將變成「10」。
3——取值;
//方式一
QString str1=qhash.value(1);//str1="1";
//方式二
QString str2=qhash[2];//str1="2";
如果qhash裡面沒有該鍵值,則返回默認構造值;比如:QString str3=qhash.value(5);//str3="";
4——檢索某個值是否在裡面
if(qhash.contains(9))
{
return false;
}
if(qhash.contains(1))
{
return true;
}
5——查找某個字並獲取,一般推薦contains結合value重載函數來實現,
QString str;
if(qhash.contains(1))
{
str=qhash.value(1);
}
else
{
str=qhash.value(1,"wert");
//團則如果哈希表中不存在指定鍵的元素,該函數使用第2個參數作為默認值
}
而不是 operator 運算符查找哈希表中的鍵。原因是如果哈希表中不存在相同鍵的元素,operator 運算符會默默地將一個元素插入到哈希表中(除非哈希表是 const 的)
//錯誤
for (int i = 0; i < 1000; ++i) {
if (qhash[i] == "789")
cout << "Found value at index " << i << Qt::endl;
}
為了避免這個問題,將上面代碼中的 hash[i] 替換為 hash.value(i),為什麼這樣可以,來我們來看看value的函數原型:const T value ( const Key & key ) const ;const啊姐妹!
6——遍歷 QHash 中存儲的所有鍵值對
QHash<int,QString>::const_iterator it = qhash.constBegin();
while (it != qhash.constEnd()) {
cout << it.key() << ": " << it.value() << Qt::endl;
++i;
}
當然不用const_iterator也可以,直接iterator;
7——刪除,下面兩種都可以
qhash.erase(it);//這里的it是迭代器哦
qhash.remove(key);
QHash和QMap好像,我的天;但是它們兩個還是有一定的區別的
QHash 的查找速度比 qmap 快。
遍歷 qmap 時,元素總是按照鍵的順序排好序的。而遍歷 QHash時,元素的順序是任意的。
qt關聯容器 關鍵字查找 插入
平均 最差 平均 最差
QMap<Key, T> O(log n) O(log n) O(log n) O(log n)
QHash<Key, T> Amort. O(1) O(n) Amort. O(1) O(n)
註: Amort.O(1)表示僅完成一次操作,可能鄭粗會有O(n)行為;但是如果完成多次操作,如n次,平均結果是O(1)
㈡ 安卓qmap是什麼文件夾
Qmap 是 QQ 的地圖文件夾(就是在 QQ 里給好友發送定位時候產春納生的文件),刪掉不是很影響使用,屬於緩存文件,刪掉後再次載入位置信息會慢一點,但不影響 QQ 發送定位的功能。
Qmap用法是歷趣手機應用商店為您推送的應用,可以刪除。
QT中的QMap是存放的是很多鍵值對的文件,可根據key查詢value。
(2)qmap如何遍歷刪除擴展閱讀:
安卓手機的文件比較不容易區分,一般都是英語命名,除非是自己設置的文件名,所以能不刪的,盡量都別刪。
如果是空間不足的話,又想刪除一些東西,那文件名前面有帶一個點的,是一定不能刪的,這類文件類似系統文件,沒有帶點的文件名,刪了不會影響手機,但是會影響你下載的某些軟體,或者游戲。
以下文件不可以刪除:
1、.android_secure 是官方app2sd的產物,刪了之後裝到sd卡中的軟體就無法使用了。
2、etc 系統主要配置文件
3、system 殲閉 Android 系統文件
4、sys Linux 內扒改沒核文件
5、proc 運行時文件
6、init.rc 啟動腳本
7、default.prop 系統屬性配置文件
8、data 用戶程序目錄
9、dev 設備文件
㈢ Qt中QMap類與QtableWidget的問題
1. int QMap::size () const 可得 QMap的數據數目
2. 根據它可察神以建table: new QTableWidget(size, 1, this)
3. 遍歷QMap:
QMap<QString, int>::const_iterator i = map.constBegin();
while (i != map.constEnd()) {
cout << i.key() << ": " << i.value() <悔賀< endl;
++i;
}
4. 把敗前虧每一個iterator所指的那條數據變成一個QTableWidgetItem
QTableWidgetItem ( const QString & text, int type = Type )
5. 把QTableWidgetItem插入到對應的table行中
QTableWidget::setItem ( int row, int column, QTableWidgetItem * item )
㈣ 如何QMap的遍歷中,刪除滿足條件的元素
怎樣才能從一個的QList刪除元素,而使用foreach遍歷
變數定義的一般形式為:
類型說明符 變數名標識符,變數名標識符,...;
例如:
int a,b,c; (a,b,c為整型變數)
long x,y; (x,y為長整型變數)
unsigned p,q; (p,q為無符號整型變數)
在書寫變數定義時,應注意以下幾點:
? 允許在一個類型說明襲基符後亂昌,定義多個相同類型的變數。各變數名之間用逗號間隔。類型說明符與變數名之間至少用一個空格間隔。
? 最後一個變數名之後必須以「;」號結尾。
? 變嘩禪扒量定義必須放在變數使用之前。一般放在函數體的開頭部分。