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

📄 qvaluelist.html

📁 QT 下载资料仅供参考
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- /home/reggie/tmp/qt-3.0-reggie-5401/qt-x11-commercial-3.0.5/doc/qvaluelist.doc:41 --><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><meta name="Translator" content="Cavendish"><meta name="Qt zh_CN Documents Website" content="http://www.qiliang.net/qt"><title>QValueList类</title><style type="text/css"><!--h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }a:link { color: #004faf; text-decoration: none }a:visited { color: #672967; text-decoration: none }body { background: #ffffff; color: black; font-family: "Times New Roman" }--></style></head><body><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr bgcolor="#E5E5E5"><td valign=center> <a href="index.html"><font color="#004faf">主页</font></a> | <a href="classes.html"><font color="#004faf">所有的类</font></a> | <a href="mainclasses.html"><font color="#004faf">主要的类</font></a> | <a href="annotated.html"><font color="#004faf">注释的类</font></a> | <a href="groups.html"><font color="#004faf">分组的类</font></a> | <a href="functions.html"><font color="#004faf">函数</font></a></td><td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>QValueList类参考</h1><p>QValueList类是一个提供双向链表的基于值的模板类。<a href="#details">详情请见……</a><p><tt>#include &lt;<a href="qvaluelist-h.html">qvaluelist.h</a>&gt;</tt><p>被<a href="qcanvasitemlist.html">QCanvasItemList</a>、<a href="qstringlist.html">QStringList</a>和<a href="qvaluestack.html">QValueStack</a>继承。<p><a href="qvaluelist-members.html">所有成员函数的列表。</a><h2>公有成员</h2><ul><li><div class=fn>typedef QValueListIterator&lt;T&gt;&nbsp;<a href="#iterator"><b>iterator</b></a></div></li><li><div class=fn>typedef QValueListConstIterator&lt;T&gt;&nbsp;<a href="#const_iterator"><b>const_iterator</b></a></div></li><li><div class=fn>typedef T&nbsp;<a href="#value_type"><b>value_type</b></a></div></li><li><div class=fn>typedef value_type&nbsp;*&nbsp;<a href="#pointer"><b>pointer</b></a></div></li><li><div class=fn>typedef const&nbsp;value_type&nbsp;*&nbsp;<a href="#const_pointer"><b>const_pointer</b></a></div></li><li><div class=fn>typedef value_type&nbsp;&amp;&nbsp;<a href="#reference"><b>reference</b></a></div></li><li><div class=fn>typedef const&nbsp;value_type&nbsp;&amp;&nbsp;<a href="#const_reference"><b>const_reference</b></a></div></li><li><div class=fn>typedef size_t&nbsp;<a href="#size_type"><b>size_type</b></a></div></li><li><div class=fn><a href="#QValueList"><b>QValueList</b></a> ()</div></li><li><div class=fn><a href="#QValueList-2"><b>QValueList</b></a> ( const&nbsp;QValueList&lt;T&gt;&nbsp;&amp;&nbsp;l )</div></li><li><div class=fn><a href="#QValueList-3"><b>QValueList</b></a> ( const&nbsp;std::list&lt;T&gt;&nbsp;&amp;&nbsp;l )</div></li><li><div class=fn><a href="#~QValueList"><b>~QValueList</b></a> ()</div></li><li><div class=fn>QValueList&lt;T&gt; &amp; <a href="#operator-eq"><b>operator=</b></a> ( const&nbsp;QValueList&lt;T&gt;&nbsp;&amp;&nbsp;l )</div></li><li><div class=fn>QValueList&lt;T&gt; &amp; <a href="#operator-eq-2"><b>operator=</b></a> ( const&nbsp;std::list&lt;T&gt;&nbsp;&amp;&nbsp;l )</div></li><li><div class=fn>bool <a href="#operator-eq-eq-2"><b>operator==</b></a> ( const&nbsp;std::list&lt;T&gt;&nbsp;&amp;&nbsp;l ) const</div></li><li><div class=fn>bool <a href="#operator-eq-eq"><b>operator==</b></a> ( const&nbsp;QValueList&lt;T&gt;&nbsp;&amp;&nbsp;l ) const</div></li><li><div class=fn>bool <a href="#operator!-eq"><b>operator!=</b></a> ( const&nbsp;QValueList&lt;T&gt;&nbsp;&amp;&nbsp;l ) const</div></li><li><div class=fn>iterator <a href="#begin-2"><b>begin</b></a> ()</div></li><li><div class=fn>const_iterator <a href="#begin"><b>begin</b></a> () const</div></li><li><div class=fn>iterator <a href="#end"><b>end</b></a> ()</div></li><li><div class=fn>const_iterator <a href="#end-2"><b>end</b></a> () const</div></li><li><div class=fn>iterator <a href="#insert"><b>insert</b></a> ( iterator&nbsp;it, const&nbsp;T&nbsp;&amp;&nbsp;x )</div></li><li><div class=fn>uint <a href="#remove-2"><b>remove</b></a> ( const&nbsp;T&nbsp;&amp;&nbsp;x )</div></li><li><div class=fn>void <a href="#clear"><b>clear</b></a> ()</div></li><li><div class=fn>QValueList&lt;T&gt; &amp; <a href="#operator-lt-lt"><b>operator&lt;&lt;</b></a> ( const&nbsp;T&nbsp;&amp;&nbsp;x )</div></li><li><div class=fn>size_type <a href="#size"><b>size</b></a> () const</div></li><li><div class=fn>bool <a href="#empty"><b>empty</b></a> () const</div></li><li><div class=fn>void <a href="#push_front"><b>push_front</b></a> ( const&nbsp;T&nbsp;&amp;&nbsp;x )</div></li><li><div class=fn>void <a href="#push_back"><b>push_back</b></a> ( const&nbsp;T&nbsp;&amp;&nbsp;x )</div></li><li><div class=fn>iterator <a href="#erase"><b>erase</b></a> ( iterator&nbsp;it )</div></li><li><div class=fn>iterator <a href="#erase-2"><b>erase</b></a> ( iterator&nbsp;first, iterator&nbsp;last )</div></li><li><div class=fn>reference <a href="#front"><b>front</b></a> ()</div></li><li><div class=fn>const_reference <a href="#front-2"><b>front</b></a> () const</div></li><li><div class=fn>reference <a href="#back"><b>back</b></a> ()</div></li><li><div class=fn>const_reference <a href="#back-2"><b>back</b></a> () const</div></li><li><div class=fn>void <a href="#pop_front"><b>pop_front</b></a> ()</div></li><li><div class=fn>void <a href="#pop_back"><b>pop_back</b></a> ()</div></li><li><div class=fn>void <a href="#insert-2"><b>insert</b></a> ( iterator&nbsp;pos, size_type&nbsp;n, const&nbsp;T&nbsp;&amp;&nbsp;x )</div></li><li><div class=fn>QValueList&lt;T&gt; <a href="#operator+"><b>operator+</b></a> ( const&nbsp;QValueList&lt;T&gt;&nbsp;&amp;&nbsp;l ) const</div></li><li><div class=fn>QValueList&lt;T&gt; &amp; <a href="#operator+-eq"><b>operator+=</b></a> ( const&nbsp;QValueList&lt;T&gt;&nbsp;&amp;&nbsp;l )</div></li><li><div class=fn>iterator <a href="#fromLast-2"><b>fromLast</b></a> ()</div></li><li><div class=fn>const_iterator <a href="#fromLast"><b>fromLast</b></a> () const</div></li><li><div class=fn>bool <a href="#isEmpty"><b>isEmpty</b></a> () const</div></li><li><div class=fn>iterator <a href="#append"><b>append</b></a> ( const&nbsp;T&nbsp;&amp;&nbsp;x )</div></li><li><div class=fn>iterator <a href="#prepend"><b>prepend</b></a> ( const&nbsp;T&nbsp;&amp;&nbsp;x )</div></li><li><div class=fn>iterator <a href="#remove"><b>remove</b></a> ( iterator&nbsp;it )</div></li><li><div class=fn>T &amp; <a href="#first"><b>first</b></a> ()</div></li><li><div class=fn>const T &amp; <a href="#first-2"><b>first</b></a> () const</div></li><li><div class=fn>T &amp; <a href="#last"><b>last</b></a> ()</div></li><li><div class=fn>const T &amp; <a href="#last-2"><b>last</b></a> () const</div></li><li><div class=fn>T &amp; <a href="#operator[]-2"><b>operator[]</b></a> ( size_type&nbsp;i )</div></li><li><div class=fn>const T &amp; <a href="#operator[]"><b>operator[]</b></a> ( size_type&nbsp;i ) const</div></li><li><div class=fn>iterator <a href="#at-2"><b>at</b></a> ( size_type&nbsp;i )</div></li><li><div class=fn>const_iterator <a href="#at"><b>at</b></a> ( size_type&nbsp;i ) const</div></li><li><div class=fn>iterator <a href="#find"><b>find</b></a> ( const&nbsp;T&nbsp;&amp;&nbsp;x )</div></li><li><div class=fn>const_iterator <a href="#find-2"><b>find</b></a> ( const&nbsp;T&nbsp;&amp;&nbsp;x ) const</div></li><li><div class=fn>iterator <a href="#find-3"><b>find</b></a> ( iterator&nbsp;it, const&nbsp;T&nbsp;&amp;&nbsp;x )</div></li><li><div class=fn>const_iterator <a href="#find-4"><b>find</b></a> ( const_iterator&nbsp;it, const&nbsp;T&nbsp;&amp;&nbsp;x ) const</div></li><li><div class=fn>int <a href="#findIndex"><b>findIndex</b></a> ( const&nbsp;T&nbsp;&amp;&nbsp;x ) const</div></li><li><div class=fn>size_type <a href="#contains"><b>contains</b></a> ( const&nbsp;T&nbsp;&amp;&nbsp;x ) const</div></li><li><div class=fn>size_type <a href="#count"><b>count</b></a> () const</div></li><li><div class=fn>QValueList&lt;T&gt; &amp; <a href="#operator+-eq-2"><b>operator+=</b></a> ( const&nbsp;T&nbsp;&amp;&nbsp;x )</div></li><li><div class=fn>typedef QValueListIterator&lt;T&gt;&nbsp;<a href="#Iterator"><b>Iterator</b></a></div></li><li><div class=fn>typedef QValueListConstIterator&lt;T&gt;&nbsp;<a href="#ConstIterator"><b>ConstIterator</b></a></div></li></ul><h2>相关函数</h2><ul><li><div class=fn>QDataStream &amp; <a href="#operator-gt-gt"><b>operator&gt;&gt;</b></a> ( QDataStream&nbsp;&amp;&nbsp;s, QValueList&lt;T&gt;&nbsp;&amp;&nbsp;l )</div></li><li><div class=fn>QDataStream &amp; <a href="#operator-lt-lt-2"><b>operator&lt;&lt;</b></a> ( QDataStream&nbsp;&amp;&nbsp;s, const&nbsp;QValueList&lt;T&gt;&nbsp;&amp;&nbsp;l )</div></li></ul><hr><a name="details"></a><h2>详细描述</h2>QValueList类是一个提供双向链表的基于值的模板类。<p> <p> QValueList是一个像STL一样的列表容器的Qt的实现。如果标准<tt>列表</tt>不能提供时,你可以在你的应用程序中使用它。QValueList是<a href="qtl.html">Qt模板库</a>的一部分。<p> QValueList&lt;T&gt;定义了一个创建了一个全部为类T的值的列表的一个模板实例。注意QValueList不是存储指针为列表的成员,它保存每个成员的复制。这也就是为什么这些类被称为“基于值”,而<a href="qptrlist.html">QPtrList</a>和<a href="qdict.html">QDict</a>是“基于指针”。<p> QValueList包含并管理一个类型为T的对象的集合并且提供允许找到被包含的对象的迭代器。QValueList拥有它的项。关于更多的所有权语义,请参考<a href="qptrcollection.html">QPtrCollection</a>和其它一些基于指针的容器类。<p> 一些类不能在QValueList中使用,例如,所有继承于<a href="qobject.html">QObject</a>的类和那些所有实现窗口部件的类。只有值可以用在QValueList中。一个类作为值必须提供以下几点:<p> <ul><li> 一个复制构造函数<li> 一个赋值操作符<li> 一个默认构造函数,比如构造函数中没有使用任何参数。</ul><p> 注意在没有明确的版本被提供的时候,C++默认实现操作符和复制函数。在很多情况下,这就足够了。<p> QValueList的函数命名和其它Qt类是一致的(比如,<a href="#count">count</a>()、<a href="#isEmpty">isEmpty</a>())。QValueList也提供兼容STL算法的一些函数,比如<a href="#size">size</a>()和<a href="#empty">empty</a>()。已经熟悉STL的<tt>list</tt>的程序员也可以使用这些函数。<p> 实例:<pre>class Employee{public:    Employee(): sn(0) {}    Employee( const <a href="qstring.html">QString</a>&amp; forename, const <a href="qstring.html">QString</a>&amp; surname, int salary )        : fn(forename), sn(surname), sal(salary)    {}    <a href="qstring.html">QString</a> forename() const { return fn; }    <a href="qstring.html">QString</a> surname() const { return sn; }    int salary() const { return sal; }    void setSalary( int salary ) { sal = salary; }private:    <a href="qstring.html">QString</a> fn;    <a href="qstring.html">QString</a> sn;    int sal;};    typedef QValueList&lt;Employee&gt; EmployeeList;    EmployeeList list;    list.append( Employee("John", "Doe", 50000) );    list.append( Employee("Jane", "Williams", 80000) );    list.append( Employee("Tom", "Jones", 60000) );    Employee mary( "Mary", "Hawthorne", 90000 );    list.append( mary );    mary.setSalary( 100000 );    EmployeeList::<a href="#iterator">iterator</a> it;    for ( it = list.begin(); it != list.end(); ++it )        cout &lt;&lt; (*it).surname().latin1() &lt;&lt; ", " &lt;&lt;                (*it).forename().latin1() &lt;&lt; " earns " &lt;&lt;                (*it).salary() &lt;&lt; endl;    // 输出:    // Doe, John earns 50000    // Williams, Jane earns 80000    // Hawthorne, Mary earns 90000    // Jones, Tom earns 60000  </pre> <p> 注意最后对Mary的薪水的改变并没有影响列表中的值,这是因为列表中创建了一个Mary条目的复制。<p> 这里有几种方法在列表中找到项。<a href="#begin">begin</a>()和<a href="#end">end</a>()函数返回列表中开始和结尾的迭代器。迭代器的优点是你可以通过对迭代器加/减就可以实现从当前位置向前/后移动了。end()返回的迭代器指向的是容器中最后一个之后的值。结尾之后的迭代器也是和列表关联的,它属于列表,尽管它是<em>不</em>可以解除引用的,<a href="qwmatrix.html#operator*-5">operator*</a>()不能返回一个被良好定义的值。如果列表是空的(<a href="#empty">empty</a>()),begin()和end()返回的值一样。<p> 另一个在列表中找到项的方法是使用<a href="qtl.html#qFind">qFind()</a>算法。比如:<p> <pre>    QValueList&lt;int&gt; list;    ...    QValueList&lt;int&gt;::<a href="#iterator">iterator</a> it = qFind( list.<a href="#begin">begin</a>(), list.<a href="#end">end</a>(), 3 );    if ( it != list.<a href="#end">end</a>() )        // it指向被找到的项。</pre> <p> 同一时间在列表中使用多个迭代器是安全的。如果列表中的一些成员被移除,只有那些指向被移除的成员的迭代器变为无效。向列表中插入项不会使任何一个迭代器无效。为了方便,函数<a href="#last">last</a>()返回列表中最后一个项的引用,并且<a href="#first">first</a>()返回第一个项的引用。如果列表为空(empty()),last()和first()都会有未定义的行为发生(你的应用程序将会崩溃或者会做一些不可预知的事情)。使用last()和first()时需要注意,比如:<p> <pre>    QValueList&lt;int&gt; list;    list.<a href="#append">append</a>( 1 );    list.<a href="#append">append</a>( 2 );    list.<a href="#append">append</a>( 3 );

⌨️ 快捷键说明

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