Qt學習筆記常用容器

2021-09-06 14:52:45 字數 3017 閱讀 4650

主要說qt的以下幾種容器

1.qlist

2.qlinkedlist

3.map

和一些常用的容器方法的使用

qsort

qcopy

qfind

1.qlist泛型集合是最常用的一種容器

看一下它的常用 操作

新增刪除和兩個迭代器

qlistiterator和qmutablelistiterator
#include

int main(int argc, char *argv)

//刪除

qdebug()<<"

刪除3"

; listint.removeat(3);

//查詢

foreach (int

item, listint)

qdebug()

<<"

iterator";

//迭代器

qlistiteratoriterator(listint);

while

(iterator.hasnext())

//返轉

iterator.toback();

while

(iterator.hasprevious())

qdebug()

<<"

可變迭代器qmutablelistiterator";

//可變的迭代器

qmutablelistiteratormutableiterator(listint);

mutableiterator.insert(

13);

mutableiterator.insert(

14);

mutableiterator.insert(

15);

while

(mutableiterator.hasnext())

}//查詢

foreach (int

item, listint)

return

a.exec();}

2.qlinkedlist

qlinkedlist和qlist差不多,不同的一點是它是用迭代器做的訪問項

也就是說qlistlist只以通過這樣訪問它的內容list[i]而qlinkedlist不可以只能用iterator

效能上它要高於qlist

#include

int main(int argc, char *argv)

//刪除第乙個2

link.removeone(2

);

//新增兩個3這兩種方式一樣

link.push_back(3);3

);

//刪除所有的3

link.removeall(3

); qdebug()

<<"

普通訪問foreach";

foreach (int

item, link)

qdebug()

<<"

迭代器qmutablelinkedlistiterator";

qmutablelinkedlistiterator

mutableiter(link);

while

(mutableiter.hasnext())

if(i==4

)

qdebug()

<}

qdebug()

<<"

迭代器qmutablelinkedlistiterator重新訪問";

mutableiter.tofront();

while

(mutableiter.hasnext())

//mutable

return

a.exec();}

a
3map

map型別是乙個鍵值對 key/value組成 其它的和上邊的兩個集合沒什麼區別 

#include

int main(int argc, char *argv)

return

a.exec();}

下邊說一下常用的集合操作方法

qsort

qcopy

qfind

#include

#include

int main(int argc, char *argv)

qdebug()

<<"

____________________________";

liststrs.clear();

liststrs

<<10

<<5

<<8

<<2

<<7

; qsort(liststrs.begin()+1,liststrs.end()-1

);

foreach (int

i, liststrs)

qdebug()

<<"

______________qcopy______________";

qvector

newvec(5

); qcopy(liststrs.begin(),liststrs.end(),newvec.begin());

foreach (int

i, newvec)

qdebug()

<<"

______________qfind______________";

liststrs.clear();

liststrs

<<2

<<5

<<8

<<2

<<7

; qlist

::const_iterator iterfin=qfind(liststrs,2

);

if(iterfin!=liststrs.end())

else

return

a.exec();}

Qt常用容器類

qt為我們提供了一系列基於模板的容器類,來儲存特定型別的項。這些容器類都是隱式共享的 被用作唯讀容器時,是執行緒安全的。與stl類似,也分為序列式容器和關聯式容器。序列式容器有 qvector qlist qlinklist qstack qqueue。對大部分程式來說qlist都是乙個很好的選擇,...

QT學習筆記(3) 容器視窗 Container

選項卡視窗qtabwidget 類似於瀏覽器的頂部的不同頁面 堆疊視窗qstackedwidget 類似於qt creator 工具 選項 右邊的那些視窗,點乙個左邊的標籤右邊也跟著變 工具視窗qtoolbox 類似於qt designer 的東西 選項卡視窗 選項卡上顯示的資訊更改 屬性 qtab...

QT學習 容器篇

qlabel pic new qlabel 建立標籤物件 qpixmap prc new qpixmap res plane1.png 指定資源檔案路徑 pic setpixmap prc ui scrollarea setwidget pic 傳遞標籤物件 pic setfixedwidth 10...