⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qptrlist.html

📁 这是qt3的帮助文档的中文版
💻 HTML
📖 第 1 页 / 共 3 页
字号:
</h3>
返回指向当前项的下一项的指针。如果当前项为空或者它是最后一项,返回空。
<p> 把下一项作为当前项。如果当前项在这次函数调用之前就是最后一项了,当前项将被设置为空。如果当前项为空,这个函数就什么都不做。
<p> <p>也可以参考<a href="#first">first</a>()、<a href="#last">last</a>()、<a href="#prev">prev</a>()和<a href="#current">current</a>()。
<p>实例:<a href="grapher-nsplugin-example.html#x2781">grapher/grapher.cpp</a>、<a href="listviews-example.html#x320">listviews/listviews.h</a>和<a href="showimg-example.html#x1282">showimg/showimg.cpp</a>。

<h3 class=fn><a href="qptrlist.html">QPtrList</a>&lt;type&gt;&nbsp;&amp; <a name="operator-eq"></a>QPtrList::operator= ( const&nbsp;<a href="qptrlist.html">QPtrList</a>&lt;type&gt;&nbsp;&amp;&nbsp;list )
</h3>
把<em>list</em>赋值给这个列表并且返回这个列表的引用。
<p> 这个列表首先被清空,然后<em>list</em>中的每个项都被<a href="#append">添加</a>到这个列表中。只有指针被复制(浅复制),除非<a href="qptrcollection.html#newItem">newItem</a>()被重新实现了。

<h3 class=fn>bool <a name="operator-eq-eq"></a>QPtrList::operator== ( const&nbsp;<a href="qptrlist.html">QPtrList</a>&lt;type&gt;&nbsp;&amp;&nbsp;list ) const
</h3>
<p> 把这个列表和<em>list</em>进行比较。如果这个列表包含相同的数据,返回真,否则返回假。

<h3 class=fn>void <a name="prepend"></a>QPtrList::prepend ( const&nbsp;type&nbsp;*&nbsp;item )
</h3>
<p> 在列表开始的位置插入<em>item</em>。
<p> 被插入项变为当前列表项。这和<tt>insert( 0, item )</tt>是相同的。
<p> <em>item</em>必须不能是一个空指针。
<p> <p>也可以参考<a href="#append">append</a>()、<a href="#insert">insert</a>()和<a href="#current">current</a>()。

<h3 class=fn>type * <a name="prev"></a>QPtrList::prev ()
</h3>
返回指向当前项的前一个项的指针。如果当前项为空或者等于第一项,返回空。
<p> 把前一项作为当前项。如果当前项在这次函数调用之前就是第一项了,当前项被设置为空。如果当前项为空,这个函数就什么都不做。
<p> <p>也可以参考<a href="#first">first</a>()、<a href="#last">last</a>()、<a href="#next">next</a>()和<a href="#current">current</a>()。

<h3 class=fn><a href="qdatastream.html">QDataStream</a>&nbsp;&amp; <a name="read"></a>QPtrList::read ( <a href="qdatastream.html">QDataStream</a>&nbsp;&amp;&nbsp;s, <a href="qptrcollection.html#Item">QPtrCollection::Item</a>&nbsp;&amp;&nbsp;item )<tt> [虚 保护]</tt>
</h3>
<p> 从流<em>s</em>中读取一个列表项并且返回流的引用。
<p> 默认实习是设置<em>item</em>为0。
<p> <p>也可以参考<a href="#write">write</a>()。

<h3 class=fn>bool <a name="remove"></a>QPtrList::remove ( uint&nbsp;index )
</h3>
移除列表中<em>index</em>位置的项。
<p> 如果成功返回真,或者如果<em>index</em>超出范围返回假。有效范围是<tt>0……(count() - 1)</tt>(包括count()-1)。
<p> 如果<a href="qptrcollection.html#setAutoDelete">自动删除</a>生效,被移除的项目将被删除。
<p> 如果被移除的项不是列表中最后一项,被移除的项之后的项变为新的当前列表项。如果最后一项被移除,新的最后一项变为当前项。
<p> 所有指向被移除项的列表迭代器都将会被指向新的当前项。
<p> <p>也可以参考<a href="#take">take</a>()、<a href="#clear">clear</a>()、<a href="qptrcollection.html#setAutoDelete">setAutoDelete</a>()、<a href="#current">current</a>()和<a href="#removeRef">removeRef</a>()。

<h3 class=fn>bool <a name="remove-2"></a>QPtrList::remove ()
</h3>
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
<p> 移除当前列表项。
<p> 如果成功返回真,或者如果当前项为空,返回假。
<p> 如果<a href="qptrcollection.html#setAutoDelete">自动删除</a>生效,被移除的项目将被删除。
<p> 如果被移除的项不是列表中最后一项,被移除的项之后的项变为新的当前列表项。如果最后一项被移除,新的最后一项变为当前项。如果列表为空,当前项为空。
<p> 所有指向被移除项的列表迭代器都将会被指向新的当前项。
<p> <p>也可以参考<a href="#take">take</a>()、<a href="#clear">clear</a>()、<a href="qptrcollection.html#setAutoDelete">setAutoDelete</a>()、<a href="#current">current</a>()和<a href="#removeRef">removeRef</a>()。

<h3 class=fn>bool <a name="remove-3"></a>QPtrList::remove ( const&nbsp;type&nbsp;*&nbsp;item )
</h3>
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
<p> 移除列表中第一次出现的<em>item</em>。
<p> 如果成功返回真,或者如果当前项为空,返回假。
<p> 如果<a href="qptrcollection.html#setAutoDelete">自动删除</a>生效,被移除的项目将被删除。
<p> 当在列表中搜索这个项的时候,<a href="#compareItems">compareItems</a>()函数被调用。如果compareItems()没有被重新实现,调用<a href="#removeRef">removeRef</a>()是更加有效率的。
<p> 如果被移除的项不是列表中最后一项,被移除的项之后的项变为新的当前列表项。如果最后一项被移除,新的最后一项变为当前项。
<p> 所有指向被移除项的列表迭代器都将会被指向新的当前项。
<p> <p>也可以参考<a href="#removeRef">removeRef</a>()、<a href="#take">take</a>()、<a href="#clear">clear</a>()、<a href="qptrcollection.html#setAutoDelete">setAutoDelete</a>()、<a href="#compareItems">compareItems</a>()和<a href="#current">current</a>()。

<h3 class=fn>bool <a name="removeFirst"></a>QPtrList::removeFirst ()
</h3>
移除列表中的第一项。如果成功返回真,或者如果列表是空的返回假。
<p> 如果<a href="qptrcollection.html#setAutoDelete">自动删除</a>生效,被移除的项目将被删除。
<p> 列表中的第一项变为新的当前列表项。如果列表变空了,当前列表项被设置为空。
<p> 所有指向被移除项的列表迭代器都将会被指向新的当前项。
<p> <p>也可以参考<a href="#removeLast">removeLast</a>()、<a href="qptrcollection.html#setAutoDelete">setAutoDelete</a>()、<a href="#current">current</a>()和<a href="#remove">remove</a>()。

<h3 class=fn>bool <a name="removeLast"></a>QPtrList::removeLast ()
</h3>
移除列表中的最后一项。如果成功返回真,或者如果列表是空的返回假。
<p> 如果<a href="qptrcollection.html#setAutoDelete">自动删除</a>生效,被移除的项目将被删除。
<p> 列表中的最后一项变为新的当前列表项。如果列表变空了,当前列表项被设置为空。
<p> 所有指向被移除项的列表迭代器都将会被指向新的当前项。
<p> <p>也可以参考<a href="#removeFirst">removeFirst</a>()、<a href="qptrcollection.html#setAutoDelete">setAutoDelete</a>()和<a href="#current">current</a>()。

<h3 class=fn>void <a name="removeNode"></a>QPtrList::removeNode ( QLNode&nbsp;*&nbsp;node )
</h3>
移除列表中的<em>node</em>节点。
<p> 这个节点必须存在于列表中,否则程序可能会崩溃。
<p> 如果<a href="qptrcollection.html#setAutoDelete">自动删除</a>生效,被移除的项目将被删除。
<p> 列表中的第一项变为新的当前列表项。如果列表变空了,当前列表项被设置为空。
<p> 所有指向被移除的列表迭代器都被指向这项的下一项或者如果被移除的项是最后一项,则指向它的前一项。
<p> <b>警告:</b>不要调用这个函数,除非你是专家。
<p> <p>也可以参考<a href="#takeNode">takeNode</a>()、<a href="#currentNode">currentNode</a>()、<a href="#remove">remove</a>()和<a href="#removeRef">removeRef</a>()。

<h3 class=fn>bool <a name="removeRef"></a>QPtrList::removeRef ( const&nbsp;type&nbsp;*&nbsp;item )
</h3>
移除列表中第一次出现的<em>item</em>。
<p> 如果成功返回真,或者如果这个项在列表中没有被找到,返回假。
<p> 如果<a href="qptrcollection.html#setAutoDelete">自动删除</a>生效,被移除的项目将被删除。
<p> 列表一直被扫描,直到指针<em>item</em>被找到为止。如果它被发现,它就会被移除。
<p> 等价于:
<pre>
    if ( list.findRef( item ) != -1 )
        list.remove();
  </pre>
 
<p> 如果被移除的项不是列表中最后一项,被移除的项之后的项变为新的当前列表项。如果最后一项被移除,新的最后一项变为当前项。如果列表变空了,当前列表项被设置为空。
<p> 所有指向被移除项的列表迭代器都将会被指向新的当前项。
<p> <p>也可以参考<a href="#remove">remove</a>()、<a href="#clear">clear</a>()、<a href="qptrcollection.html#setAutoDelete">setAutoDelete</a>()和<a href="#current">current</a>()。

<h3 class=fn>void <a name="setAutoDelete"></a>QPtrCollection::setAutoDelete ( bool&nbsp;enable )
</h3>
<p> 如果<em>enable</em>为真,设置集合可以自动删除它的内容,并且如果<em>enable</em>为假,就永远不能删除它们。
<p> 如果自动删除被打开,当集合本身被删除的时候,集合内所有的项也都被删除。如果只有这个集合指向它的项时,这个方法很方便。
<p> 为了安全,默认设置是假。如果你把它打开,对于集合的复制你要注意些——你自己也许会发现两个集合删除同一个项。
<p> 注意在子类中自动删除设置也许会影响其它函数。例如,一个有<a href="#remove">remove</a>()函数的子类将会从它的数据结构中移除这个项,并且如果自动删除生效,也将会删除这个项。
<p> <p>也可以参考<a href="qptrcollection.html#autoDelete">autoDelete</a>().
<p>实例:<a href="grapher-nsplugin-example.html#x2777">grapher/grapher.cpp</a>、<a href="scribble-example.html#x945">scribble/scribble.cpp</a>和<a href="bigtable-example.html#x1489">table/bigtable/main.cpp</a>。

<h3 class=fn>void <a name="sort"></a>QPtrList::sort ()
</h3>
<p> 使用虚函数<a href="#compareItems">compareItems</a>()的结果排序这个列表。
<p> 排序中使用堆排序算法。它对n项排序需要O(n*log n)次比较。这是排序问题中接近最佳的解决方案。
<p> 如果你的列表中的项支持操作符&lt;和操作符==,你最好离开QSortedList,因为它使用这两个操作符为你实现了compareItems()函数。
<p> <p>也可以参考<a href="#inSort">inSort</a>()。

<h3 class=fn>type * <a name="take"></a>QPtrList::take ( uint&nbsp;index )
</h3>
把列表中在<em>index</em>位置的项拿出来,而不删除它(尽管如果<a href="qptrcollection.html#setAutoDelete">自动删除</a>是生效的。)
<p> 返回指向你从列表中拿出的项的指针,或者如果索引超出范围,返回空。有效范围是<tt>0..(count() - 1)</tt>(包括count()-1)。
<p> 如果被移除的项不是列表中最后一项,被移除的项之后的项变为新的当前列表项。如果最后一项被移除,新的最后一项变为当前项。如果列表变空了,当前列表项被设置为空。
<p> 所有指向被移除项的列表迭代器都将会被指向新的当前项。
<p> <p>也可以参考<a href="#remove">remove</a>()、<a href="#clear">clear</a>()和<a href="#current">current</a>()。
<p>实例:<a href="customlayout-example.html#x1374">customlayout/border.cpp</a>、<a href="customlayout-example.html#x1392">customlayout/card.cpp</a>和<a href="customlayout-example.html#x1351">customlayout/flow.cpp</a>。

<h3 class=fn>type * <a name="take-2"></a>QPtrList::take ()
</h3>
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
<p> 把列表中在<em>index</em>位置的项拿出来,而不删除它(尽管如果<a href="qptrcollection.html#setAutoDelete">自动删除</a>是生效的。)
<p> 返回指向你从列表中拿出的项的指针,或者如果索引超出范围,返回空。有效范围是<tt>0..(count() - 1)</tt>(包括count()-1)。
<p> 如果被移除的项不是列表中最后一项,被移除的项之后的项变为新的当前列表项。如果最后一项被移除,新的最后一项变为当前项。如果列表变空了,当前列表项被设置为空。
<p> 所有指向被移除项的列表迭代器都将会被指向新的当前项。
<p> <p>也可以参考<a href="#remove">remove</a>()、<a href="#clear">clear</a>()和<a href="#current">current</a>()。

<h3 class=fn>type * <a name="takeNode"></a>QPtrList::takeNode ( QLNode&nbsp;*&nbsp;node )
</h3>
把列表中的节点<em>node</em>拿出来,而不删除它(尽管如果<a href="qptrcollection.html#setAutoDelete">自动删除</a>是生效的。)返回指向你从列表中拿出的项的指针。
<p> 这个节点必须存在于列表中,否则程序可能会崩溃。
<p> 列表中的第一项变为新的当前列表项。如果列表变空了,当前列表项被设置为空。
<p> 所有指向被移除的列表迭代器都被指向这项的下一项或者如果被移除的项是最后一项,则指向它的前一项。
<p> <b>警告:</b>不要调用这个函数,除非你是专家。
<p> <p>也可以参考<a href="#removeNode">removeNode</a>()和<a href="#currentNode">currentNode</a>()。

<h3 class=fn>void <a name="toVector"></a>QPtrList::toVector ( QGVector&nbsp;*&nbsp;vec ) const
</h3>
存储所有的列表项到矢量<em>vec</em>中。
<p> 矢量必须和项的类型相同,否则结果将会是不确定的。

<h3 class=fn><a href="qdatastream.html">QDataStream</a>&nbsp;&amp; <a name="write"></a>QPtrList::write ( <a href="qdatastream.html">QDataStream</a>&nbsp;&amp;&nbsp;s, <a href="qptrcollection.html#Item">QPtrCollection::Item</a>&nbsp;item ) const<tt> [虚 保护]</tt>
</h3>
<p> 写一个列表项<em>item</em>到流<em>s</em>中并且返回流的引用。
<p> 默认实现是不做任何事。
<p> <p>也可以参考<a href="#read">read</a>().

<!-- eof -->
<hr><p>
这个文件是<a href="index.html">Qt工具包</a>一部分。
版权所有 &copy; 1995-2002
<a href="http://www.trolltech.com/">Trolltech</a>。保留所有权利。
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 2002 
<a href="http://www.trolltech.com">Trolltech</a>
<td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a>
<td><a href="zh_CN.html">译者:Cavendish</a>
<td align=right><div align=right>Qt 3.0.5版</div>
</table></div></address></body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -