QQueue与QStack使用

本文介绍了Qt库中的QQueue和QStack数据结构,它们分别实现了FIFO(先进先出)和LIFO(后进先出)原则。QQueue基于QList,QStack基于QVector,虽然可以使用各自父类的所有方法,但有特定适用于它们的方法。文中提供了简单的使用示例,帮助理解两者之间的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

介绍

QQueue是Qt的队列实现,符合先进先出FIFO,继承自QList,可以使用QList所有方法,但不建议使用,属于QQueue的方法有

T dequeue()
void enqueue(const T &t)
T &head()
const T &head() const
void swap(QQueue<T> &other)

QStack是Qt的栈实现,符合后进先出LIFO,继承自QVector,可以使用QVector所有方法,但不建议食用,属于QStack的方法有

T pop()
void push(const T &t)
void swap(QStack<T> &other)
T &top()
const T &top() const

简单范例

所有父类方法均可使用,可参见QList使用下面例子仅对比分析

QQueue<int> m_queue;
m_queue.enqueue(1);
m_queue.enqueue(2);
m_queue.enqueue(3);
qDebug()<<m_queue.size();
qDebug()<<m_queue.dequeue();
qDebug()<<m_queue.dequeue();
qDebug()<<m_queue.dequeue();
qDebug()<<m_queue.size();
QStack<int> m_stack;
m_stack.push(1);
m_stack.push(2);
m_stack.push(3);
qDebug()<<m_stack.size();
qDebug()<<m_stack.pop();
qDebug()<<m_stack.pop();
qDebug()<<m_stack.pop();
qDebug()<<m_stack.size();

结果

3
1
2
3
0
3
3
2
1
0

Techie亮博客,转载请注明:Coologic » QQueue与QStack使用

Coologic 博客域名已更改,已从 www.techieliang.com 改为 www.coologic.cn,上述链接地址受到影响,若需查看源文请手动修改,多有不便,敬请谅解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值