📄 qbitarray.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- /home/reggie/tmp/qt-3.0-reggie-5401/qt-x11-commercial-3.0.5/src/tools/qbitarray.cpp:81 -->
<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>QBitArray类</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>QBitArray类参考</h1>
<p>QBitArray类提供了一个位数组。
<a href="#details">详情请见……</a>
<p><tt>#include <<a href="qbitarray-h.html">qbitarray.h</a>></tt>
<p>继承了<a href="qbytearray.html">QByteArray</a>。
<p><a href="qbitarray-members.html">所有成员函数的列表。</a>
<h2>公有成员</h2>
<ul>
<li><div class=fn><a href="#QBitArray"><b>QBitArray</b></a> ()</div></li>
<li><div class=fn><a href="#QBitArray-2"><b>QBitArray</b></a> ( uint size )</div></li>
<li><div class=fn><a href="#QBitArray-3"><b>QBitArray</b></a> ( const QBitArray & a )</div></li>
<li><div class=fn>QBitArray & <a href="#operator-eq"><b>operator=</b></a> ( const QBitArray & a )</div></li>
<li><div class=fn>uint <a href="#size"><b>size</b></a> () const</div></li>
<li><div class=fn>bool <a href="#resize"><b>resize</b></a> ( uint size )</div></li>
<li><div class=fn>bool <a href="#fill"><b>fill</b></a> ( bool v, int size = -1 )</div></li>
<li><div class=fn>virtual void <a href="#detach"><b>detach</b></a> ()</div></li>
<li><div class=fn>QBitArray <a href="#copy"><b>copy</b></a> () const</div></li>
<li><div class=fn>bool <a href="#testBit"><b>testBit</b></a> ( uint index ) const</div></li>
<li><div class=fn>void <a href="#setBit-2"><b>setBit</b></a> ( uint index )</div></li>
<li><div class=fn>void <a href="#setBit"><b>setBit</b></a> ( uint index, bool value )</div></li>
<li><div class=fn>void <a href="#clearBit"><b>clearBit</b></a> ( uint index )</div></li>
<li><div class=fn>bool <a href="#toggleBit"><b>toggleBit</b></a> ( uint index )</div></li>
<li><div class=fn>bool <a href="#at"><b>at</b></a> ( uint index ) const</div></li>
<li><div class=fn>QBitVal <a href="#operator[]"><b>operator[]</b></a> ( int index )</div></li>
<li><div class=fn>bool <a href="#operator[]-2"><b>operator[]</b></a> ( int index ) const</div></li>
<li><div class=fn>QBitArray & <a href="#operator-and-eq"><b>operator&=</b></a> ( const QBitArray & a )</div></li>
<li><div class=fn>QBitArray & <a href="#operator|-eq"><b>operator|=</b></a> ( const QBitArray & a )</div></li>
<li><div class=fn>QBitArray & <a href="#operator^-eq"><b>operator^=</b></a> ( const QBitArray & a )</div></li>
<li><div class=fn>QBitArray <a href="#operator~"><b>operator~</b></a> () const</div></li>
</ul>
<h2>Related Functions</h2>
<ul>
<li><div class=fn>QBitArray <a href="#operator-and"><b>operator&</b></a> ( const QBitArray & a1, const QBitArray & a2 )</div></li>
<li><div class=fn>QBitArray <a href="#operator|"><b>operator|</b></a> ( const QBitArray & a1, const QBitArray & a2 )</div></li>
<li><div class=fn>QBitArray <a href="#operator^"><b>operator^</b></a> ( const QBitArray & a1, const QBitArray & a2 )</div></li>
<li><div class=fn>QDataStream & <a href="#operator-lt-lt"><b>operator<<</b></a> ( QDataStream & s, const QBitArray & a )</div></li>
<li><div class=fn>QDataStream & <a href="#operator-gt-gt"><b>operator>></b></a> ( QDataStream & s, QBitArray & a )</div></li>
</ul>
<hr><a name="details"></a><h2>详细描述</h2>
QBitArray类提供了一个位数组。
<p>
<p> 因为QBitArray是一个<a href="qmemarray.html">QMemArray</a>,它通过一个引用计数使用了明显<a href="shclass.html">共享</a>。
<p> QBitArray是一个特殊的字节数组,它可以访问单独的位并且可以在整个位数组上执行为操作(AND、OR、XOR和NOT)。
<p> 位可以通过函数<a href="#setBit">setBit</a>()和<a href="#clearBit">clearBit</a>()来操作,但是它也可以使用索引[]操作符来测试和设置单独的位。[]操作符比setBit()和clearBit()慢一些,因为在实现单独位分配中需要一些技巧。
<p> 实例:
<pre>
QBitArray a(3);
a.<a href="#setBit">setBit</a>( 0 );
a.<a href="#clearBit">clearBit</a>( 1 );
a.<a href="#setBit">setBit</a>( 2 ); // a = [1 0 1]
QBitArray b(3);
b[0] = 1;
b[1] = 1;
b[2] = 0; // b = [1 1 0]
QBitArray c;
c = ~a & b; // c = [0 1 0]
</pre>
<p> 当QBitArray被构造时,位没有被初始化。使用<a href="#fill">fill</a>()可以设置所有的位为0或1。数组可以用<a href="#resize">resize</a>()来重新定义大小并且用<a href="#copy">copy</a>()来复制。位可以用setBit()来设置并且用clearBit()来清空。位可以用<a href="#toggleBit">toggleBit</a>()来切换。一个位的值可以用<a href="#testBit">testBit</a>()和<a href="#at">at</a>()来获得。
<p> QBitArray支持&(AND)、|(OR)、^(XOR)和~(NOT)操作符。
<p>也可以参考<a href="collection.html">集合类</a>、<a href="shared.html">隐含和明显共享类</a>和<a href="tools.html">非GUI类</a>。
<hr><h2>成员函数文档</h2>
<h3 class=fn><a name="QBitArray"></a>QBitArray::QBitArray ()
</h3>
构造一个空的位数组。
<h3 class=fn><a name="QBitArray-2"></a>QBitArray::QBitArray ( uint size )
</h3>
构造一个<em>size</em>位的位数组。位没有被初始化。
<p> <p>也可以参考<a href="#fill">fill</a>()。
<h3 class=fn><a name="QBitArray-3"></a>QBitArray::QBitArray ( const <a href="qbitarray.html">QBitArray</a> & a )
</h3>
构造一个<em>a</em>的<a href="shclass.html#shallow-copy">浅复制</a>。
<h3 class=fn>bool <a name="at"></a>QBitArray::at ( uint index ) const
</h3>
返回<em>index</em>位置的位的值(0或1)。
<p>也可以参考<a href="#operator[]">operator[]</a>()。
<h3 class=fn>void <a name="clearBit"></a>QBitArray::clearBit ( uint index )
</h3>
清空<em>index</em>位置的位(设置它为0)。
<p>也可以参考<a href="#setBit">setBit</a>()和<a href="#toggleBit">toggleBit</a>()。
<h3 class=fn><a href="qbitarray.html">QBitArray</a> <a name="copy"></a>QBitArray::copy () const
</h3>
返回一个位数组的<a href="shclass.html#deep-copy">深复制</a>。
<p>也可以参考<a href="#detach">detach</a>()。
<h3 class=fn>void <a name="detach"></a>QBitArray::detach ()<tt> [虚]</tt>
</h3>
从共享位数组数据中分离并且并且确认这个位数组是数据的唯一引用。
<p> 如果是多重位数组共享公有数据,这个位数组引用计数减一并且得到一个数据的复制。如果只是一个单独的引用将没有任何操作。
<p> <p>也可以参考<a href="#copy">copy</a>()。
<p>从<a href="qmemarray.html#detach">QMemArray</a>中重新实现的。
<h3 class=fn>bool <a name="fill"></a>QBitArray::fill ( bool v, int size = -1 )
</h3>
用<em>v</em>填充位数组(如果<em>v</em>为真,填1,或者如果<em>v</em>为假,填0)。
<p> 如果<em>size</em>为非负数,<a href="#fill">fill</a>()会重新定义位数组的大小为<em>size</em>。
<p> 如果<em>size</em>为非负数并且位数组没有能被重新定义大小,返回假,否则返回真。
<p> <p>也可以参考<a href="#resize">resize</a>()。
<h3 class=fn><a href="qbitarray.html">QBitArray</a> & <a name="operator-and-eq"></a>QBitArray::operator&= ( const <a href="qbitarray.html">QBitArray</a> & a )
</h3>
对这个位数组和<em>a</em>的所有位进行AND操作。返回这个位数组的引用。
<p> 如果两个数组大小不同,对于缺少的位,AND操作将使用0,就像下面的例子所描述的:
<pre>
QBitArray a( 3 ), b( 2 );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -