Qt学习笔记常用容器
主要说Qt的以下几种容器 1.QList 2.QLinkedList 3.Map 和一些常用的容器方法的使用 qSort qCopy qFind 1.QList泛型集合是最常用的一种容器 看一下它的常用
主要说Qt的以下几种容器
1.QList
2.QLinkedList
3.Map
和一些常用的容器方法的使用
qSort
qCopy
qFind
1.QList
看一下它的常用 操作
添加删除和两个迭代器
代码语言:javascript复制QListIterator和QMutableListIterator代码语言:javascript复制#include
#include
#include
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QList
//添加
for(int i =0;i<10;i++)
{
listInt.append(i);
//也可以这样添加元素
//listInt<
}
//删除
qDebug()<<"删除3";
listInt.removeAt(3);
//查询
foreach (int item, listInt) {
qDebug()< } qDebug()<<"Iterator"; //迭代器 QListIterator while(iterator.hasNext()) { qDebug()< if(iterator.hasNext()) qDebug()<<"the Next is :"< } //返转 iterator.toBack(); while(iterator.hasPrevious()) { qDebug()< } qDebug()<<"可变迭代器QMutableListIterator"; //可变的迭代器 QMutableListIterator mutableiterator.insert(13); mutableiterator.insert(14); mutableiterator.insert(15); while(mutableiterator.hasNext()) { int i= mutableiterator.next(); if(i==2||i==6) { mutableiterator.remove(); } } //查询 foreach (int item, listInt) { qDebug()< } return a.exec(); }2.QLinkedList QLinkedList 也就是说QList 性能上它要高于QList 代码语言:javascript复制#include #include #include int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QLinkedList link<<1<<2<<2<<3<<4; qDebug()<<"迭代器访问QLinkedListIterator"; QLinkedListIterator while(iterator.hasNext()) { qDebug()<< iterator.next(); } //删除第一个2 link.removeOne(2); //添加两个3这两种方式一样 link.push_back(3); link.append(3); //删除所有的3 link.removeAll(3); qDebug()<<"普通访问foreach"; foreach (int item, link) { qDebug()<< item; } qDebug()<<"迭代器QMutableLinkedListIterator"; QMutableLinkedListIterator while(mutableIter.hasNext()) { int i= mutableIter.next(); if(i==1) { mutableIter.insert(90); } if(i==4) { mutableIter.remove(); } qDebug()<
} qDebug()<<"迭代器QMutableLinkedListIterator重新访问"; mutableIter.toFront(); while(mutableIter.hasNext()) { int i= mutableIter.next(); qDebug()<
} //mutable return a.exec(); }代码语言:javascript复制a3Map map类型是一个键值对 key/value组成 其它的和上边的两个集合没什么区别 代码语言:javascript复制#include #include #include int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QMap map.insert(1,"a"); map.insert(2,"b"); map.insert(3,"c"); QMutableMapIterator while(mutableIte.hasNext()) { mutableIte.next(); qDebug()< } return a.exec(); }下边说一下常用的集合操作方法 qSort qCopy qFind 代码语言:javascript复制#include #include #include #include int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QList listStrs<<10<<5<<8<<2<<7; qSort(listStrs); foreach (int i, listStrs) { qDebug()<
} qDebug()<<"____________________________"; listStrs.clear(); listStrs<<10<<5<<8<<2<<7; qSort(listStrs.begin()+1,listStrs.end()-1); foreach (int i, listStrs) { qDebug()<
} qDebug()<<"______________qCopy______________"; QVector qCopy(listStrs.begin(),listStrs.end(),newVec.begin()); foreach (int i, newVec) { qDebug()<
} qDebug()<<"______________qFind______________"; listStrs.clear(); listStrs<<2<<5<<8<<2<<7; QList if(iterFin!=listStrs.end()) { qDebug()<<*iterFin; } else { qDebug()<<"notFound!"; } return a.exec(); }