QStack(栈->先进后出)
-
头文件: #include <QStack>
-
定义: QStack<类型> 变量名
QStack<int>stack;
-
push操作(向堆栈添加元素,会把新的元素放在栈顶)
stack.push(10);//将10压入栈顶 stack.push(15);//将15压入栈顶 输出内容 (栈顶)->15->10->(栈底)
-
pop操作(从栈堆中删除元素,从栈顶开始删)
stack.pop();//直接删除栈顶元素 //全部删除可以使用while循环 while(!stack.isEmpty()) { int value = stack.pop(); qDebug()<<"Delete:"<<value; }
-
isEmpty() 判断当前栈是否为空
stack.isEmpty()
QSet容器(哈希列表,高效的插入,删除和查找,过程无序)
-
头文件 : #include<QSet>
-
定义 QSet<类型>变量名
QSet<int>intSet; QSet<QString>stringSet;
-
insert操作 (可以向集合中插入元素)
intSet.insert(1); stringSet.insert("Zoe");
-
contains操作,检查集合中是否存在某个元素
if(intSet.contains(1))
-
size操作,获取集合中元素的数量
intSet.size()
-
iterator 遍历
1. for(int value:intSet) { qDebug()<<value; } 2、 QSet<QString>::iterator it; for(it = stringSet.begin(); it!= stringSet.end(); ++it) { qDebug()<<*it; }
-
clear,清空操作
intSet.clear(); stringSet.clear();
-
unite 将两个集合合并
QSet<int>set1; QSet<int>set2; set1.insert(1); set2.insert(2); set1.unite(set2);//set1中{1,2}
-
intersect 两个集合的交集
//set1中{1,2} //set2中{2,3} set1.intersect(set2);//set1{2}
-
substract 两个集合的差集
//set1中{1,2} //set2中{2,3} set1.substract(set2);//set1{1},只看set1中的
-
toList 将集合转换为列表
QList<int>list = set.toList(); for(int value: list) { qDebug()<<value; }