返回介绍

QPtrQueue类

发布于 2019-10-04 15:02:06 字数 3847 浏览 1006 评论 0 收藏 0

QPtrQueue类是一个提供队列的模板类。 详情请见……

#include <qptrqueue.h>

所有成员函数的列表。

公有成员

  • QPtrQueue ()
  • QPtrQueue ( constQPtrQueue<type>&queue )
  • ~QPtrQueue ()
  • QPtrQueue<type> & operator= ( constQPtrQueue<type>&queue )
  • bool autoDelete () const
  • void setAutoDelete ( boolenable )
  • uint count () const
  • bool isEmpty () const
  • void enqueue ( consttype*d )
  • type * dequeue ()
  • bool remove ()
  • void clear ()
  • type * head () const
  • operator type * () const
  • type * current () const

保护成员

  • virtual QDataStream & read ( QDataStream&s, QPtrCollection::Item&item )
  • virtual QDataStream & write ( QDataStream&s, QPtrCollection::Itemitem ) const

详细描述

QPtrQueue类是一个提供队列的模板类。

QValueVector是可以替代这个类的的一个可兼容STL的的选择。

定义一个模板实例QPtrQueue<X>就创建了一个操作X(X*)指针的队列。

队列就是先进先出的结构。可以通过enqueue()把项添加到队列末尾并且可以通过dequeue()从队列开始处重新得到项。你可以使用head()来查看头项而不用把它从队列中拿出来。

你可以用setAutoDelete()来控制队列删除策略。

为了兼容QPtrCollection类,current()和remove()都被提供,两个都基于head()操作。

也可以参考QPtrList、QPtrStack、集合类和非GUI类。


成员函数文档

QPtrQueue::QPtrQueue ()

创建一个autoDelete()被设置为假的空队列。

QPtrQueue::QPtrQueue ( constQPtrQueue<type>&queue )

queue创建一个队列。

只有指针被复制,项没有被复制。autoDelete()标记被设置为假。

QPtrQueue::~QPtrQueue ()

销毁这个队列。如果autoDelete()为真,队列中的项被删除。

bool QPtrQueue::autoDelete () const

返回自动删除选项的设置。默认为假。

也可以参考setAutoDelete()。

void QPtrQueue::clear ()

从队列中移除所有项,并且如果autoDelete()为真,就删除它们。

也可以参考remove()。

uint QPtrQueue::count () const

返回队列中项的数量。

也可以参考isEmpty()。

type * QPtrQueue::current () const

返回队列中头项的引用。队列没有被改变。

也可以参考dequeue()和isEmpty()。

type * QPtrQueue::dequeue ()

从队列中得到头项并且返回它的指针。

也可以参考enqueue()和count()。

void QPtrQueue::enqueue ( consttype*d )

把项d添加到队列末尾。

也可以参考count()和dequeue()。

type * QPtrQueue::head () const

返回队列中头项的引用。队列没有被改变。

也可以参考dequeue()和isEmpty()。

bool QPtrQueue::isEmpty () const

如果队列是空的,返回真,否则返回假。

也可以参考count()、dequeue()和head()。

QPtrQueue::operator type * () const

返回队列中头项的引用。队列没有被改变。

也可以参考dequeue()和isEmpty()。

QPtrQueue<type>& QPtrQueue::operator= ( constQPtrQueue<type>&queue )

queue赋值给这个队列并且返回这个队列的引用。

这个队列首先被清空并且然后queue中的每一个项都被添加到这个队列中。只有指针被复制。

注意autoDelete()标记没有被修改。如果queue和这个队列中都设置为真,删除这个两个队列将导致对项双重删除。

QDataStream& QPtrQueue::read ( QDataStream&s, QPtrCollection::Item&item ) [virtual protected]

从流s读取一个队列项item并且返回流的引用。

默认实现是设置item为0。

也可以参考write()。

bool QPtrQueue::remove ()

从队列中移除头项并且如果队列中还有项返回真,或者如果队列空了返回假。

如果autoDelete()为真,就删除这个项。

也可以参考head()、isEmpty()和dequeue()。

void QPtrQueue::setAutoDelete ( boolenable )

如果enable为真,设置队列自动删除它的内容并且如果enable为假,就不删除它们。

如果自动删除被打开,当队列被删除时,队列中的所有项都会被删除。如果队列拥有项的唯一指针,这个将是非常方便的。

为了安全,默认设置为假。如果你把它打开,在复制队列时请注意。你也许会发现你自己的两个队列删除相同的项。

也可以参考autoDelete()。

QDataStream& QPtrQueue::write ( QDataStream&s, QPtrCollection::Itemitem ) const [virtual protected]

写一个队列项item到流s中并且返回流的引用。

默认实现是不做任何事。

也可以参考read()。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文