QPtrQueue类

Qt 3.0.5

主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数

QPtrQueue类参考

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

#include <qptrqueue.h>

所有成员函数的列表。

公有成员

保护成员

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

详细描述

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

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

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

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

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

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

也可以参考QPtrListQPtrStack集合类非GUI类


成员函数文档

QPtrQueue::QPtrQueue ()

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

QPtrQueue::QPtrQueue ( const QPtrQueue<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 ( const type * 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= ( const QPtrQueue<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 ( bool enable )

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

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

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

也可以参考autoDelete()。

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

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

默认实现是不做任何事。

也可以参考read()。


这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。


Copyright © 2002 Trolltech Trademarks 译者:Cavendish
Qt 3.0.5版