主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 |
QPtrVector类是提供矢量(数组)的模板集合类。 详情请见……
#include <qptrvector.h>
继承了QPtrCollection。
QPtrVector类是提供矢量(数组)的模板集合类。
QValueVector是可以替代这个类的的一个可兼容STL的的选择。
QPtrVector被设计为一个模板类。定义一个模板实例QPtrVector<X>就创建了一个操作X(X*)指针的矢量。
矢量和数组是相同的。QPtrVector和QMemArray的主要不同就是QPtrVector存储元素的指针,而QMemArray存储元素自身(比如,QMemArray是基于类的并且QPtrVector是基于指针的)。
可以使用insert()或fill()把项添加到矢量中。可以使用remove()来移除项。你可以使用at()得到一个指定索引位置的项的指针。
除非是相反的状态,如果自动删除生效,所有从矢量中移除项的函数也都会将它们指向的元素删除。默认情况下,自动删除是失效的,请参考setAutoDelete()。这个行为可以通过在子类中重新实现虚函数deleteItem()来改变。
比较项的函数(比如find()和sort())也都使用虚函数compareItems()。这个函数的默认实现只是比较指针值。在子类中中心实现compareItems()来获得基于项的内容的搜索和排序。你可以使用findRef()在矢量中执行一个对指针的线性搜索,或者使用bsearch()在一个排好序的矢量中执行一个二进制搜索。你可以使用contains()或containsRef()来统计一个项在矢量中出现的次数。
构造一个零矢量。
也可以参考isNull()。
构造一个空间为size项的矢量。如果size==0,构造一个零矢量。
矢量中所有size个位置都被初始化为0。
也可以参考size()、resize()和isNull()。
构造一个v的复制。只有指针被复制(比如,浅复制)。
从矢量中移除所有的项,并且销毁矢量自己。
也可以参考clear()。
返回在i位置的项,或者如果在那个位置没有项,返回0。i必须小于size()。
返回自动删除选项的设置。默认为假。
也可以参考setAutoDelete()。
在一个排好序的数组中,使用二进制搜索找到d第一次出现的位置。对于一个排好序的数组,这个比做线性搜索的find()要快很多。
返回d的位置,或者如果d没有被找到返回-1。d必须不能为0。
比较项使用虚函数compareItems()。
从矢量中删除所有项,并且销毁矢量自己。
矢量变为一个零矢量。
也可以参考isNull()。
从QPtrCollection中重新实现的。
这个虚函数比较两个列表项:
返回:
这个函数返回int而不是bool,这样重新实现就可以返回3个值并且用来进行排序:
sort()和bsearch()函数需要compareItems()像这里所描述的那样被实现。
这个函数不应该修改矢量因为一些常量函数会调用compareItems()。
返回矢量中项d出现的次数。
比较项使用虚函数compareItems()。
也可以参考containsRef()。
返回矢量中项指针d出现的次数。
这个函数不使用compareItems()来比较项。
也可以参考findRef()。
返回矢量中项的数量。如果count()==0,这个矢量为空。
从QPtrCollection中重新实现。
如果data()==0(零指针),矢量为零矢量。
也可以参考isNull()。
在矢量的所有位置插入项d。任何存在的项都被移除。如果d为0,这个矢量变为空。
如果size>=0,矢量首先被重新定义大小为size。默认情况下,size为-1。
如果成功,返回真,或者如果内存不能被分配(只有在重定义大小被需要的时候),返回假。
也可以参考resize()、insert()和isEmpty()。
在矢量中使用线性搜索找到项d第一次出现的位置。这个搜索从i位置开始,i必须小于size()。i默认为0,比如,搜索从矢量的开始处开始。
返回d的位置,或者如果d没有被找到,返回-1。
比较项使用虚函数compareItems()。
使用更快的bsearch()来搜索一个排好序的矢量。
在矢量中使用线性搜索找到项指针d第一次出现的位置。这个搜索从i位置开始,i必须小于size()。i默认为0,比如,搜索从矢量的开始处开始。
返回d的位置,或者如果d没有被找到,返回-1。
这个函数不使用compareItems()来比较项。
使用更快的bsearch()来搜索一个排好序的矢量。
设置矢量中的位置i来包含项d。i必须小于size()。在i位置的任何以前的元素被移除了。
也可以参考at()。
如果矢量为空,返回真,否则返回假。
也可以参考count()。
如果矢量为零,返回真,否则返回假。
也可以参考size()。
把v赋值给这个矢量并且返回这个矢量的引用。
这个矢量首先被清空并且然后v所有的项都被复制到矢量中。只有指针被复制(比如,浅复制)。
也可以参考clear()。
返回在位置i的项,或者如果在那个位置没有项,返回0。i必须小于size()。
等于at( i )。
也可以参考at()。
从流s中读入一个矢量项item并且返回流的引用。
默认实现是设置item为0。
也可以参考write()。
如果有的话,移除矢量中位置i的项。i必须小于size()。
只要i不超出范围,就返回真。
矢量中在size位置的或者超出的任何项被一出了。新的位置被初始化为0。
如果成功,返回真,或者如果内存不能被分配,返回假。
如果enable为真,设置集合自动删除它的内容并且如果enable为假,就从不删除它们。
如果自动删除被打开,当集合被删除时,集合中的所有项都会被删除。如果集合拥有项的唯一指针,这个将是非常方便的。
为了安全,默认设置为假。如果你把它打开,在复制集合时请注意。你也许会发现你自己的两个集合删除相同的项。
注意在子类中自动删除设置也许会影响其它函数。例如,一个有remove()函数的子类将会从它的数据结构中移除这个项,并且如果自动删除生效,也将会删除这个项。
也可以参考autoDelete()。
矢量:grapher/grapher.cpp、scribble/scribble.cpp和table/bigtable/main.cpp。
返回矢量的大小,比如矢量位置的数量。这也是矢量中可以保存元素的最大数量。
如果size()==0,这个矢量为空矢量。
也可以参考isNull()、resize()和count()。
按升序排列项。任何空的位置将被放在最后面。
比较项使用虚函数compareItems()。
也可以参考bsearch()。
返回矢量中位置i的项,并且从矢量中移除项。i必须小于size()。如果在位置i没有项,返回0。
与remove()形成对照,这个函数不调用deleteItem()来比较项。
复制这个矢量的所有项到列表list中。list首先被清空并且然后被添加到list中。
也可以参考QPtrList、QPtrStack和QPtrQueue。
写一个矢量项item到流s中并且返回流的引用。
默认实现是不做任何事。
也可以参考read()。
这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。
Copyright © 2002 Trolltech | Trademarks | 译者:Cavendish | Qt 3.0.5版
|