Qt容器类
程序员文章站
2022-06-17 08:02:42
...
Qt容器类分为:顺序容器,关联容器
顺序容器有,QList,QLinkedList,QVector,QStack,QQueue
QList,在其前后添加数据非常快,以下标缩印的方式对数据访问
//QList能对数据进行快速索引,还提供了快速插入和删除等操作
QList<QString> list;
list.append("abc");//尾添加
list << "one" << "two";
list.prepend("123");//头添加
for(int i = 0; i < list.length(); i++)
{
qDebug() << list.at(i);
}
//用迭代器遍历QList
QList<QString>::iterator ite = list.begin();//include <iterator>头文件
for(ite; ite != list.end(); ite++)
{
qDebug() << *ite;
}
QList提供了一系列添加、移动、删除元素的操作:insert(), replace(), removeAt(),swap()
。此外,它还提供了便于操作的函数:append(), prepend(), removeFirst(),removeLast()。
QLinkedList是一个链式列表,
它以非连续的内存快保存数据,所以他是不能使用下标进行访问的,
也就是说他更适合插入的操作,
QVector这个方式是在相邻的内存位置上保存数据的,
也就是以数组的方式进行存储的,
所以对起进行插入的操作的时候是一项很耗时间的,
因为要有大量的数据进行一动。。当然也是可以通过下标对其进行访问的。
QStack 和 QQueue,它们提供了后进先出和先进先出。
QStack<int> stack;
stack.push(10);//入栈
stack.push(20);
stack.push(30);
while(!stack.isEmpty())
qDebug() << stack.pop();//出栈 30 20 10
QQueue<int> queue;
queue.enqueue(10);//入队列
queue.enqueue(20);
queue.enqueue(30);
while (!queue.empty())
{
qDebug() << queue.dequeue();//出队列 10 20 30
}