📄 qmemarray.html
字号:
<p> 这个可以用来读写一个元素。
<p> <p>也可以参考<a href="#operator[]">operator[]</a>()。
<h3 class=fn><a href="qmemarray.html#Iterator">Iterator</a> <a name="begin"></a>QMemArray::begin ()
</h3>
返回指向数组开始的一个迭代器。这个迭代器与如<a href="qvaluelist.html">QValueList</a>和<a href="qmap.html">QMap</a>中的迭代器使用方法相同。实际上,它不仅行为和指针相似,它就是一个指针。
<h3 class=fn><a href="qmemarray.html#ConstIterator">ConstIterator</a> <a name="begin-2"></a>QMemArray::begin () const
</h3>
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
<p> 返回指向数组开始的一个常量迭代器。这个迭代器与如<a href="qvaluelist.html">QValueList</a>和<a href="qmap.html">QMap</a>中的迭代器使用方法相同。实际上,它不仅行为和指针相似,它就是一个指针。
<h3 class=fn>int <a name="bsearch"></a>QMemArray::bsearch ( const type & v ) const
</h3>
在排过序的数组中,通过使用二进制搜索找到第一个出现的<em>v</em>。对于排过序的数组,它通常比做线性搜索的<a href="#find">find</a>()快很多。
<p> 返回<em>v</em>的位置,或者如果<em>v</em>没有被找到,返回-1。
<p> <p>也可以参考<a href="#sort">sort</a>()和<a href="#find">find</a>()。
<h3 class=fn>int <a name="contains"></a>QMemArray::contains ( const type & v ) const
</h3>
返回数组中<em>v</em>出现的次数。
<p>也可以参考<a href="#find">find</a>()。
<h3 class=fn><a href="qmemarray.html">QMemArray</a><type> <a name="copy"></a>QMemArray::copy () const
</h3>
返回一个数组的<a href="shclass.html#deep-copy">深复制</a>。
<p>也可以参考<a href="#detach">detach</a>()和<a href="#duplicate">duplicate</a>()。
<h3 class=fn>uint <a name="count"></a>QMemArray::count () const
</h3>
返回和<a href="#size">size</a>()一样的值。
<p> <p>也可以参考<a href="#size">size</a>()。
<p>实例:<a href="scribble-example.html#x934">scribble/scribble.cpp</a>。
<h3 class=fn>type * <a name="data"></a>QMemArray::data () const
</h3>
返回实际数组数据的指针。
<p> 如果<a href="#data">data</a>()==0(空指针),这个数组为空数组。
<p> <p>也可以参考<a href="#isNull">isNull</a>()。
<p>实例:<a href="fileiconview-example.html#x851">fileiconview/qfileiconview.cpp</a>和<a href="networkprotocol-example.html#x600">network/networkprotocol/nntp.cpp</a>。
<h3 class=fn>void <a name="detach"></a>QMemArray::detach ()<tt> [虚]</tt>
</h3>
把这个数组从共享内存数据中分离出来,比如它做了一次秘密的数据的<a href="shclass.html#deep-copy">深复制</a>。
<p> 复制操作只有在<a href="#nrefs">引用计数</a>比一大的时候执行。
<p> <p>也可以参考<a href="#copy">copy</a>()。
<p>在<a href="qbitarray.html#detach">QBitArray</a>中被重新实现。
<h3 class=fn><a href="qmemarray.html">QMemArray</a><type> & <a name="duplicate"></a>QMemArray::duplicate ( const <a href="qmemarray.html">QMemArray</a><type> & a )
</h3>
<a href="shclass.html#deep-copy">深复制</a>。当前数组数据的引用计数减一并且相反地获得<em>a</em>中包含的数据的复制。返回这个数组的引用。
<p>也可以参考<a href="#copy">copy</a>()。
<h3 class=fn><a href="qmemarray.html">QMemArray</a><type> & <a name="duplicate-2"></a>QMemArray::duplicate ( const type * data, uint size )
</h3>
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
<p> <a href="shclass.html#deep-copy">深复制</a>。当前数组数据的引用计数减一并且相反地获得数组数据<em>data</em>中复制。返回这个数组的引用。数组的大小由<em>size</em>给定。
<p>也可以参考<a href="#copy">copy</a>()。
<h3 class=fn><a href="qmemarray.html#Iterator">Iterator</a> <a name="end"></a>QMemArray::end ()
</h3>
返回指向数组最后一个元素之后的一个迭代器。这个迭代器与如<a href="qvaluelist.html">QValueList</a>和<a href="qmap.html">QMap</a>中的迭代器使用方法相同。实际上,它不仅行为和指针相似,它就是一个指针。
<h3 class=fn><a href="qmemarray.html#ConstIterator">ConstIterator</a> <a name="end-2"></a>QMemArray::end () const
</h3>
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
<p> 返回指向数组最后一个元素之后的一个迭代器。这个迭代器与如<a href="qvaluelist.html">QValueList</a>和<a href="qmap.html">QMap</a>中的迭代器使用方法相同。实际上,它不仅行为和指针相似,它就是一个指针。
<h3 class=fn>bool <a name="fill"></a>QMemArray::fill ( const type & v, int size = -1 )
</h3>
用值<em>v</em>来填充数组。如果<em>size</em>被指定为与-1不同的值,数组将在填充之前被重新定义大小。
<p> 如果成功,返回真,或者如果不能分配内存时(只有当<em>size</em>!=-1时),返回假。
<p> <p>也可以参考<a href="#resize">resize</a>()。
<h3 class=fn>int <a name="find"></a>QMemArray::find ( const type & v, uint index = 0 ) const
</h3>
查找从<em>index</em>位置开始,<em>v</em>第一次出现的位置。
<p> 返回<em>v</em>的位置,或者如果<em>v</em>没有找到,返回-1。
<p> <p>也可以参考<a href="#contains">contains</a>()。
<h3 class=fn>bool <a name="isEmpty"></a>QMemArray::isEmpty () const
</h3>
如果数组是空的,返回真,否则返回假。
<p> 对于QMemArray,<a href="#isEmpty">isEmpty</a>()与<a href="#isNull">isNull</a>()相同。(这一点与<a href="qstring.html">QString</a>不同)
<h3 class=fn>bool <a name="isNull"></a>QMemArray::isNull () const
</h3>
<p> 如果数组为空,返回真,否则返回假。
<p> 一个空数组的<a href="#size">size</a>()==0并且<a href="#data">data</a>()==0。
<h3 class=fn>uint <a name="nrefs"></a>QMemArray::nrefs () const
</h3>
返回共享数组数据的引用计数。这个引用计数总是比零大。
<h3 class=fn><a name="operator-const-type-*"></a>QMemArray::operator const type * () const
</h3>
强制性操作符。返回数组的指针。
<p>也可以参考<a href="#data">data</a>()。
<h3 class=fn>bool <a name="operator!-eq"></a>QMemArray::operator!= ( const <a href="qmemarray.html">QMemArray</a><type> & a ) const
</h3>
如果这个数组与<em>a</em>不同,返回真,否则返回假。
<p> 两个数组进行逐位比较。
<p> <p>也可以参考<a href="#operator-eq-eq">operator==</a>()。
<h3 class=fn><a href="qmemarray.html">QMemArray</a><type> & <a name="operator-eq"></a>QMemArray::operator= ( const <a href="qmemarray.html">QMemArray</a><type> & a )
</h3>
分配<em>a</em>的一个<a href="shclass.html#shallow-copy">浅复制</a>到这个数组并且返回这个数组的引用。
<p> 与 <a href="#assign">assign</a>( a )相同。
<h3 class=fn>bool <a name="operator-eq-eq"></a>QMemArray::operator== ( const <a href="qmemarray.html">QMemArray</a><type> & a ) const
</h3>
Returns TRUE if this array is equal to <em>a</em>; otherwise returns FALSE.
如果这个数组与<em>a</em>相同,返回真,否则返回假。
<p> 两个数组进行逐位比较。
<p> <p>也可以参考<a href="#operator!-eq">operator!=</a>()。
<h3 class=fn>type & <a name="operator[]"></a>QMemArray::operator[] ( int index ) const
</h3>
返回数组中<em>index</em>位置的元素的引用。
<p> 这个可以用来读写一个元素。与<a href="#at">at</a>()相同。
<p> <p>也可以参考<a href="#at">at</a>()。
<h3 class=fn>void <a name="resetRawData"></a>QMemArray::resetRawData ( const type * data, uint size )
</h3>
使用<a href="#setRawData">setRawData</a>()重新设置原始数据。
<p> 参数必须为<em>data</em>和长度<em>size</em>,它们将被传递给setRawData()。这里是为了一致性检验。
<p> <p>也可以参考<a href="#setRawData">setRawData</a>()。
<h3 class=fn>bool <a name="resize"></a>QMemArray::resize ( uint size )
</h3>
<p> 重新定义数组的大小为<em>size</em>个元素(扩大或者缩小)。如果<em>size</em>==0,数组将变为空数组。
<p> 如果成功,返回真,或者如果不能分配内存时,返回假。
<p> 新元素没有被初始化。
<p> <p>也可以参考<a href="#size">size</a>()。
<p>例子:<a href="fileiconview-example.html#x852">fileiconview/qfileiconview.cpp</a>。
<h3 class=fn><a href="qmemarray.html">QMemArray</a><type> & <a name="setRawData"></a>QMemArray::setRawData ( const type * data, uint size )
</h3>
<p> 设置原始数据并且返回数组的引用。
<p> 当前数组数据的引用计数减一并且设置新的数组数据为<em>data</em>并且新数组大小为<em>size</em>。当原始数据已经被设定之后,不要试图重新定义数组的大小。
Call <a href="#resetRawData">resetRawData</a>(<em>data</em>, <em>size</em>) to reset the array.
<p> 设置原始数据是有用的因为它设置QMemArray数据而没有分配内存或者复制数据。
<p> 实例一(故意使用):
<pre>
static char bindata[] = { 231, 1, 44, ... };
<a href="qbytearray.html">QByteArray</a> a;
a.<a href="#setRawData">setRawData</a>( bindata, sizeof(bindata) ); // a指向bindata
<a href="qdatastream.html">QDataStream</a> s( a, <a href="qfile.html#open">IO_ReadOnly</a> ); // 打开a的数据
s >> <something>; // 读取原始的bindata
a.<a href="#resetRawData">resetRawData</a>( bindata, sizeof(bindata) ); // 完成
</pre>
<p> 实例二(如果你不想这么做):
<pre>
static char bindata[] = { 231, 1, 44, ... };
<a href="qbytearray.html">QByteArray</a> a, b;
a.<a href="#setRawData">setRawData</a>( bindata, sizeof(bindata) ); // a指向bindata
a.<a href="#resize">resize</a>( 8 ); // 将会崩溃
b = a; // 将会崩溃
a[2] = 123; // 也许会崩溃
// 忘了resetRawData:将会崩溃
</pre>
<p> <b>警告:</b>如果你没有调用<a href="#resetRawData">resetRawData</a>(),QMemArray将会试图解除分配或者重新分配原始数据,这也许太不好了。请注意。
<p> <p>也可以参考<a href="#resetRawData">resetRawData</a>()。
<h3 class=fn>uint <a name="size"></a>QMemArray::size () const
</h3>
返回数组大小(元素的最大数量)。
<p> 如果<a href="#size">size</a>()==0,这个数组是一个空数组。
<p> <p>也可以参考<a href="#isNull">isNull</a>()和<a href="#resize">resize</a>()。
<h3 class=fn>void <a name="sort"></a>QMemArray::sort ()
</h3>
把数据元素按升序排列,使用逐位比较(memcmp())。
<p> <p>也可以参考<a href="#bsearch">bsearch</a>()。
<h3 class=fn>bool <a name="truncate"></a>QMemArray::truncate ( uint pos )
</h3>
<p> 从<em>pos</em>位置截短数组。
<p> 如果成功,返回真,或者如果不能分配内存时,返回假。
<p> 与<a href="#resize">resize</a>(<em>pos</em>)相同。
<p> <p>也可以参考<a href="#resize">resize</a>()。
<hr><h2>相关函数</h2>
<h3 class=fn><a href="qdatastream.html">QDataStream</a> & <a name="operator-lt-lt"></a>operator<< ( <a href="qdatastream.html">QDataStream</a> & s, const <a href="qbytearray.html">QByteArray</a> & a )
</h3>
从字节数组<em>a</em>写到<em>s</em>流中并且返回流的引用。
<p> <p>也可以参考<a href="datastreamformat.html">QDataStream操作符的格</a>。
<h3 class=fn><a href="qdatastream.html">QDataStream</a> & <a name="operator-gt-gt"></a>operator>> ( <a href="qdatastream.html">QDataStream</a> & s, <a href="qbytearray.html">QByteArray</a> & a )
</h3>
从<em>s</em>流中到读取字节数组<em>a</em>中并且返回流的引用。
<p> <p>也可以参考<a href="datastreamformat.html">QDataStream操作符的格式</a>。
<h3 class=fn>Q_UINT16 <a name="qChecksum"></a>qChecksum ( const char * data, uint len )
</h3>
返回<em>data</em>开始的<em>len</em>字节的CRC-16的校验和。
<p> 校验和与字节顺序无关。
<!-- eof -->
<hr><p>
这个文件是<a href="index.html">Qt工具包</a>一部分。
版权所有 © 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 © 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 + -