Sophie

Sophie

distrib > Mageia > 6 > armv5tl > media > core-updates > by-pkgid > 768f7d9f703884aa2562bf0a651086df > files > 298

qtbase5-doc-5.9.4-1.1.mga6.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qbitarray.cpp -->
  <title>QBitArray Class | Qt Core 5.9</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td >Qt 5.9</td><td ><a href="qtcore-index.html">Qt Core</a></td><td ><a href="qtcore-module.html">C++ Classes</a></td><td >QBitArray</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right">Qt 5.9.4 Reference Documentation</td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#public-functions">Public Functions</a></li>
<li class="level1"><a href="#related-non-members">Related Non-Members</a></li>
<li class="level1"><a href="#details">Detailed Description</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">QBitArray Class</h1>
<!-- $$$QBitArray-brief -->
<p>The <a href="qbitarray.html">QBitArray</a> class provides an array of bits. <a href="#details">More...</a></p>
<!-- @@@QBitArray -->
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign">   <span class="preprocessor">#include &lt;QBitArray&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += core</td></tr></table></div><ul>
<li><a href="qbitarray-members.html">List of all members, including inherited members</a></li>
</ul>
<p><b>Note:</b> All functions in this class are reentrant.</p>
<a name="public-functions"></a>
<h2 id="public-functions">Public Functions</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#QBitArray">QBitArray</a></b>()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#QBitArray-1">QBitArray</a></b>(int <i>size</i>, bool <i>value</i> = false)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#QBitArray-2">QBitArray</a></b>(const QBitArray &amp;<i>other</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#QBitArray-3">QBitArray</a></b>(QBitArray &amp;&amp;<i>other</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#at">at</a></b>(int <i>i</i>) const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#clear">clear</a></b>()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#clearBit">clearBit</a></b>(int <i>i</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#count">count</a></b>() const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#count-1">count</a></b>(bool <i>on</i>) const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#fill">fill</a></b>(bool <i>value</i>, int <i>size</i> = -1)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#fill-1">fill</a></b>(bool <i>value</i>, int <i>begin</i>, int <i>end</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#isEmpty">isEmpty</a></b>() const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#isNull">isNull</a></b>() const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#resize">resize</a></b>(int <i>size</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#setBit">setBit</a></b>(int <i>i</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#setBit-1">setBit</a></b>(int <i>i</i>, bool <i>value</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#size">size</a></b>() const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#swap">swap</a></b>(QBitArray &amp;<i>other</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#testBit">testBit</a></b>(int <i>i</i>) const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#toggleBit">toggleBit</a></b>(int <i>i</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#truncate">truncate</a></b>(int <i>pos</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-not-eq">operator!=</a></b>(const QBitArray &amp;<i>other</i>) const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QBitArray &amp;</td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-and-eq">operator&amp;=</a></b>(const QBitArray &amp;<i>other</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QBitArray &amp;</td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-eq">operator=</a></b>(const QBitArray &amp;<i>other</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QBitArray &amp;</td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-eq-1">operator=</a></b>(QBitArray &amp;&amp;<i>other</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-eq-eq">operator==</a></b>(const QBitArray &amp;<i>other</i>) const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QBitRef </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-5b-5d">operator[]</a></b>(int <i>i</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-5b-5d-1">operator[]</a></b>(int <i>i</i>) const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QBitRef </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-5b-5d-2">operator[]</a></b>(uint <i>i</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-5b-5d-3">operator[]</a></b>(uint <i>i</i>) const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QBitArray &amp;</td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-5e-eq">operator^=</a></b>(const QBitArray &amp;<i>other</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QBitArray &amp;</td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-7c-eq">operator|=</a></b>(const QBitArray &amp;<i>other</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QBitArray </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-7e">operator~</a></b>() const</td></tr>
</table></div>
<a name="related-non-members"></a>
<h2 id="related-non-members">Related Non-Members</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> QBitArray </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-and">operator&amp;</a></b>(const QBitArray &amp;<i>a1</i>, const QBitArray &amp;<i>a2</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QDataStream &amp;</td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-lt-lt">operator&lt;&lt;</a></b>(QDataStream &amp;<i>out</i>, const QBitArray &amp;<i>ba</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QDataStream &amp;</td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-gt-gt">operator&gt;&gt;</a></b>(QDataStream &amp;<i>in</i>, QBitArray &amp;<i>ba</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QBitArray </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-5e">operator^</a></b>(const QBitArray &amp;<i>a1</i>, const QBitArray &amp;<i>a2</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QBitArray </td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-7c">operator|</a></b>(const QBitArray &amp;<i>a1</i>, const QBitArray &amp;<i>a2</i>)</td></tr>
</table></div>
<a name="details"></a>
<!-- $$$QBitArray-description -->
<div class="descr">
<h2 id="details">Detailed Description</h2>
<p>The <a href="qbitarray.html">QBitArray</a> class provides an array of bits.</p>
<p>A <a href="qbitarray.html">QBitArray</a> is an array that gives access to individual bits and provides operators (<a href="qbitarray.html#operator-and">AND</a>, <a href="qbitarray.html#operator-7c">OR</a>, <a href="qbitarray.html#operator-5e">XOR</a>, and <a href="qbitarray.html#operator-7e">NOT</a>) that work on entire arrays of bits. It uses <a href="implicit-sharing.html">implicit sharing</a> (copy-on-write) to reduce memory usage and to avoid the needless copying of data.</p>
<p>The following code constructs a <a href="qbitarray.html">QBitArray</a> containing 200 bits initialized to false (0):</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> ba(<span class="number">200</span>);

</pre>
<p>To initialize the bits to true, either pass <code>true</code> as second argument to the constructor, or call <a href="qbitarray.html#fill">fill</a>() later on.</p>
<p><a href="qbitarray.html">QBitArray</a> uses 0-based indexes, just like C++ arrays. To access the bit at a particular index position, you can use operator[](). On non-const bit arrays, operator[]() returns a reference to a bit that can be used on the left side of an assignment. For example:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> ba;
  ba<span class="operator">.</span>resize(<span class="number">3</span>);
  ba<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="keyword">true</span>;
  ba<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="keyword">false</span>;
  ba<span class="operator">[</span><span class="number">2</span><span class="operator">]</span> <span class="operator">=</span> <span class="keyword">true</span>;

</pre>
<p>For technical reasons, it is more efficient to use <a href="qbitarray.html#testBit">testBit</a>() and <a href="qbitarray.html#setBit">setBit</a>() to access bits in the array than operator[](). For example:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> ba(<span class="number">3</span>);
  ba<span class="operator">.</span>setBit(<span class="number">0</span><span class="operator">,</span> <span class="keyword">true</span>);
  ba<span class="operator">.</span>setBit(<span class="number">1</span><span class="operator">,</span> <span class="keyword">false</span>);
  ba<span class="operator">.</span>setBit(<span class="number">2</span><span class="operator">,</span> <span class="keyword">true</span>);

</pre>
<p><a href="qbitarray.html">QBitArray</a> supports <code>&amp;</code> (<a href="qbitarray.html#operator-and">AND</a>), <code>|</code> (<a href="qbitarray.html#operator-7c">OR</a>), <code>^</code> (<a href="qbitarray.html#operator-5e">XOR</a>), <code>~</code> (<a href="qbitarray.html#operator-7e">NOT</a>), as well as <code>&amp;=</code>, <code>|=</code>, and <code>^=</code>. These operators work in the same way as the built-in C++ bitwise operators of the same name. For example:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> x(<span class="number">5</span>);
  x<span class="operator">.</span>setBit(<span class="number">3</span><span class="operator">,</span> <span class="keyword">true</span>);
  <span class="comment">// x: [ 0, 0, 0, 1, 0 ]</span>

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> y(<span class="number">5</span>);
  y<span class="operator">.</span>setBit(<span class="number">4</span><span class="operator">,</span> <span class="keyword">true</span>);
  <span class="comment">// y: [ 0, 0, 0, 0, 1 ]</span>

  x <span class="operator">|</span><span class="operator">=</span> y;
  <span class="comment">// x: [ 0, 0, 0, 1, 1 ]</span>

</pre>
<p>For historical reasons, <a href="qbitarray.html">QBitArray</a> distinguishes between a null bit array and an empty bit array. A <i>null</i> bit array is a bit array that is initialized using <a href="qbitarray.html">QBitArray</a>'s default constructor. An <i>empty</i> bit array is any bit array with size 0. A null bit array is always empty, but an empty bit array isn't necessarily null:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span>()<span class="operator">.</span>isNull();           <span class="comment">// returns true</span>
  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span>()<span class="operator">.</span>isEmpty();          <span class="comment">// returns true</span>

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span>(<span class="number">0</span>)<span class="operator">.</span>isNull();          <span class="comment">// returns false</span>
  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span>(<span class="number">0</span>)<span class="operator">.</span>isEmpty();         <span class="comment">// returns true</span>

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span>(<span class="number">3</span>)<span class="operator">.</span>isNull();          <span class="comment">// returns false</span>
  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span>(<span class="number">3</span>)<span class="operator">.</span>isEmpty();         <span class="comment">// returns false</span>

</pre>
<p>All functions except <a href="qbitarray.html#isNull">isNull</a>() treat null bit arrays the same as empty bit arrays; for example, <a href="qbitarray.html#QBitArray">QBitArray</a>() compares equal to <a href="qbitarray.html">QBitArray</a>(0). We recommend that you always use <a href="qbitarray.html#isEmpty">isEmpty</a>() and avoid <a href="qbitarray.html#isNull">isNull</a>().</p>
</div>
<p><b>See also </b><a href="qbytearray.html">QByteArray</a> and <a href="qvector.html">QVector</a>.</p>
<!-- @@@QBitArray -->
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$QBitArray[overload1]$$$QBitArray -->
<h3 class="fn" id="QBitArray"><a name="QBitArray"></a>QBitArray::<span class="name">QBitArray</span>()</h3>
<p>Constructs an empty bit array.</p>
<p><b>See also </b><a href="qbitarray.html#isEmpty">isEmpty</a>().</p>
<!-- @@@QBitArray -->
<!-- $$$QBitArray$$$QBitArrayintbool -->
<h3 class="fn" id="QBitArray-1"><a name="QBitArray-1"></a>QBitArray::<span class="name">QBitArray</span>(<span class="type">int</span> <i>size</i>, <span class="type">bool</span> <i>value</i> = false)</h3>
<p>Constructs a bit array containing <i>size</i> bits. The bits are initialized with <i>value</i>, which defaults to false (0).</p>
<!-- @@@QBitArray -->
<!-- $$$QBitArray$$$QBitArrayconstQBitArray& -->
<h3 class="fn" id="QBitArray-2"><a name="QBitArray-2"></a>QBitArray::<span class="name">QBitArray</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>other</i>)</h3>
<p>Constructs a copy of <i>other</i>.</p>
<p>This operation takes <a href="containers.html#constant-time">constant time</a>, because <a href="qbitarray.html">QBitArray</a> is <a href="implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="qbitarray.html">QBitArray</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="containers.html#linear-time">linear time</a>.</p>
<p><b>See also </b><a href="qbitarray.html#operator-eq">operator=</a>().</p>
<!-- @@@QBitArray -->
<!-- $$$QBitArray$$$QBitArrayQBitArray&& -->
<h3 class="fn" id="QBitArray-3"><a name="QBitArray-3"></a>QBitArray::<span class="name">QBitArray</span>(<span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;&amp;<i>other</i>)</h3>
<p>Move-constructs a <a href="qbitarray.html">QBitArray</a> instance, making it point at the same object that <i>other</i> was pointing to.</p>
<p>This function was introduced in  Qt 5.2.</p>
<!-- @@@QBitArray -->
<!-- $$$at[overload1]$$$atint -->
<h3 class="fn" id="at"><a name="at"></a><span class="type">bool</span> QBitArray::<span class="name">at</span>(<span class="type">int</span> <i>i</i>) const</h3>
<p>Returns the value of the bit at index position <i>i</i>.</p>
<p><i>i</i> must be a valid index position in the bit array (i.e&#x2e;, 0 &lt;= <i>i</i> &lt; <a href="qbitarray.html#size">size</a>()).</p>
<p><b>See also </b><a href="qbitarray.html#operator-5b-5d">operator[]</a>().</p>
<!-- @@@at -->
<!-- $$$clear[overload1]$$$clear -->
<h3 class="fn" id="clear"><a name="clear"></a><span class="type">void</span> QBitArray::<span class="name">clear</span>()</h3>
<p>Clears the contents of the bit array and makes it empty.</p>
<p><b>See also </b><a href="qbitarray.html#resize">resize</a>() and <a href="qbitarray.html#isEmpty">isEmpty</a>().</p>
<!-- @@@clear -->
<!-- $$$clearBit[overload1]$$$clearBitint -->
<h3 class="fn" id="clearBit"><a name="clearBit"></a><span class="type">void</span> QBitArray::<span class="name">clearBit</span>(<span class="type">int</span> <i>i</i>)</h3>
<p>Sets the bit at index position <i>i</i> to 0.</p>
<p><i>i</i> must be a valid index position in the bit array (i.e&#x2e;, 0 &lt;= <i>i</i> &lt; <a href="qbitarray.html#size">size</a>()).</p>
<p><b>See also </b><a href="qbitarray.html#setBit">setBit</a>() and <a href="qbitarray.html#toggleBit">toggleBit</a>().</p>
<!-- @@@clearBit -->
<!-- $$$count[overload1]$$$count -->
<h3 class="fn" id="count"><a name="count"></a><span class="type">int</span> QBitArray::<span class="name">count</span>() const</h3>
<p>Same as <a href="qbitarray.html#size">size</a>().</p>
<!-- @@@count -->
<!-- $$$count$$$countbool -->
<h3 class="fn" id="count-1"><a name="count-1"></a><span class="type">int</span> QBitArray::<span class="name">count</span>(<span class="type">bool</span> <i>on</i>) const</h3>
<p>If <i>on</i> is true, this function returns the number of 1-bits stored in the bit array; otherwise the number of 0-bits is returned.</p>
<!-- @@@count -->
<!-- $$$fill[overload1]$$$fillboolint -->
<h3 class="fn" id="fill"><a name="fill"></a><span class="type">bool</span> QBitArray::<span class="name">fill</span>(<span class="type">bool</span> <i>value</i>, <span class="type">int</span> <i>size</i> = -1)</h3>
<p>Sets every bit in the bit array to <i>value</i>, returning true if successful; otherwise returns <code>false</code>. If <i>size</i> is different from -1 (the default), the bit array is resized to <i>size</i> beforehand.</p>
<p>Example:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> ba(<span class="number">8</span>);
  ba<span class="operator">.</span>fill(<span class="keyword">true</span>);
  <span class="comment">// ba: [ 1, 1, 1, 1, 1, 1, 1, 1 ]</span>

  ba<span class="operator">.</span>fill(<span class="keyword">false</span><span class="operator">,</span> <span class="number">2</span>);
  <span class="comment">// ba: [ 0, 0 ]</span>

</pre>
<p><b>See also </b><a href="qbitarray.html#resize">resize</a>().</p>
<!-- @@@fill -->
<!-- $$$fill$$$fillboolintint -->
<h3 class="fn" id="fill-1"><a name="fill-1"></a><span class="type">void</span> QBitArray::<span class="name">fill</span>(<span class="type">bool</span> <i>value</i>, <span class="type">int</span> <i>begin</i>, <span class="type">int</span> <i>end</i>)</h3>
<p>This is an overloaded function.</p>
<p>Sets bits at index positions <i>begin</i> up to (but not including) <i>end</i> to <i>value</i>.</p>
<p><i>begin</i> must be a valid index position in the bit array (0 &lt;= <i>begin</i> &lt; <a href="qbitarray.html#size">size</a>()).</p>
<p><i>end</i> must be either a valid index position or equal to <a href="qbitarray.html#size">size</a>(), in which case the fill operation runs until the end of the array (0 &lt;= <i>end</i> &lt;= <a href="qbitarray.html#size">size</a>()).</p>
<p>Example:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> ba(<span class="number">4</span>);
  ba<span class="operator">.</span>fill(<span class="keyword">true</span><span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">2</span>);            <span class="comment">// ba: [ 0, 1, 0, 0 ]</span>
  ba<span class="operator">.</span>fill(<span class="keyword">true</span><span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">3</span>);            <span class="comment">// ba: [ 0, 1, 1, 0 ]</span>
  ba<span class="operator">.</span>fill(<span class="keyword">true</span><span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);            <span class="comment">// ba: [ 0, 1, 1, 1 ]</span>

</pre>
<!-- @@@fill -->
<!-- $$$isEmpty[overload1]$$$isEmpty -->
<h3 class="fn" id="isEmpty"><a name="isEmpty"></a><span class="type">bool</span> QBitArray::<span class="name">isEmpty</span>() const</h3>
<p>Returns <code>true</code> if this bit array has size 0; otherwise returns false.</p>
<p><b>See also </b><a href="qbitarray.html#size">size</a>().</p>
<!-- @@@isEmpty -->
<!-- $$$isNull[overload1]$$$isNull -->
<h3 class="fn" id="isNull"><a name="isNull"></a><span class="type">bool</span> QBitArray::<span class="name">isNull</span>() const</h3>
<p>Returns <code>true</code> if this bit array is null; otherwise returns <code>false</code>.</p>
<p>Example:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span>()<span class="operator">.</span>isNull();           <span class="comment">// returns true</span>
  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span>(<span class="number">0</span>)<span class="operator">.</span>isNull();          <span class="comment">// returns false</span>
  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span>(<span class="number">3</span>)<span class="operator">.</span>isNull();          <span class="comment">// returns false</span>

</pre>
<p>Qt makes a distinction between null bit arrays and empty bit arrays for historical reasons. For most applications, what matters is whether or not a bit array contains any data, and this can be determined using <a href="qbitarray.html#isEmpty">isEmpty</a>().</p>
<p><b>See also </b><a href="qbitarray.html#isEmpty">isEmpty</a>().</p>
<!-- @@@isNull -->
<!-- $$$resize[overload1]$$$resizeint -->
<h3 class="fn" id="resize"><a name="resize"></a><span class="type">void</span> QBitArray::<span class="name">resize</span>(<span class="type">int</span> <i>size</i>)</h3>
<p>Resizes the bit array to <i>size</i> bits.</p>
<p>If <i>size</i> is greater than the current size, the bit array is extended to make it <i>size</i> bits with the extra bits added to the end. The new bits are initialized to false (0).</p>
<p>If <i>size</i> is less than the current size, bits are removed from the end.</p>
<p><b>See also </b><a href="qbitarray.html#size">size</a>().</p>
<!-- @@@resize -->
<!-- $$$setBit[overload1]$$$setBitint -->
<h3 class="fn" id="setBit"><a name="setBit"></a><span class="type">void</span> QBitArray::<span class="name">setBit</span>(<span class="type">int</span> <i>i</i>)</h3>
<p>Sets the bit at index position <i>i</i> to 1.</p>
<p><i>i</i> must be a valid index position in the bit array (i.e&#x2e;, 0 &lt;= <i>i</i> &lt; <a href="qbitarray.html#size">size</a>()).</p>
<p><b>See also </b><a href="qbitarray.html#clearBit">clearBit</a>() and <a href="qbitarray.html#toggleBit">toggleBit</a>().</p>
<!-- @@@setBit -->
<!-- $$$setBit$$$setBitintbool -->
<h3 class="fn" id="setBit-1"><a name="setBit-1"></a><span class="type">void</span> QBitArray::<span class="name">setBit</span>(<span class="type">int</span> <i>i</i>, <span class="type">bool</span> <i>value</i>)</h3>
<p>This is an overloaded function.</p>
<p>Sets the bit at index position <i>i</i> to <i>value</i>.</p>
<!-- @@@setBit -->
<!-- $$$size[overload1]$$$size -->
<h3 class="fn" id="size"><a name="size"></a><span class="type">int</span> QBitArray::<span class="name">size</span>() const</h3>
<p>Returns the number of bits stored in the bit array.</p>
<p><b>See also </b><a href="qbitarray.html#resize">resize</a>().</p>
<!-- @@@size -->
<!-- $$$swap[overload1]$$$swapQBitArray& -->
<h3 class="fn" id="swap"><a name="swap"></a><span class="type">void</span> QBitArray::<span class="name">swap</span>(<span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>other</i>)</h3>
<p>Swaps bit array <i>other</i> with this bit array. This operation is very fast and never fails.</p>
<p>This function was introduced in  Qt 4.8.</p>
<!-- @@@swap -->
<!-- $$$testBit[overload1]$$$testBitint -->
<h3 class="fn" id="testBit"><a name="testBit"></a><span class="type">bool</span> QBitArray::<span class="name">testBit</span>(<span class="type">int</span> <i>i</i>) const</h3>
<p>Returns <code>true</code> if the bit at index position <i>i</i> is 1; otherwise returns <code>false</code>.</p>
<p><i>i</i> must be a valid index position in the bit array (i.e&#x2e;, 0 &lt;= <i>i</i> &lt; <a href="qbitarray.html#size">size</a>()).</p>
<p><b>See also </b><a href="qbitarray.html#setBit">setBit</a>() and <a href="qbitarray.html#clearBit">clearBit</a>().</p>
<!-- @@@testBit -->
<!-- $$$toggleBit[overload1]$$$toggleBitint -->
<h3 class="fn" id="toggleBit"><a name="toggleBit"></a><span class="type">bool</span> QBitArray::<span class="name">toggleBit</span>(<span class="type">int</span> <i>i</i>)</h3>
<p>Inverts the value of the bit at index position <i>i</i>, returning the previous value of that bit as either true (if it was set) or false (if it was unset).</p>
<p>If the previous value was 0, the new value will be 1. If the previous value was 1, the new value will be 0.</p>
<p><i>i</i> must be a valid index position in the bit array (i.e&#x2e;, 0 &lt;= <i>i</i> &lt; <a href="qbitarray.html#size">size</a>()).</p>
<p><b>See also </b><a href="qbitarray.html#setBit">setBit</a>() and <a href="qbitarray.html#clearBit">clearBit</a>().</p>
<!-- @@@toggleBit -->
<!-- $$$truncate[overload1]$$$truncateint -->
<h3 class="fn" id="truncate"><a name="truncate"></a><span class="type">void</span> QBitArray::<span class="name">truncate</span>(<span class="type">int</span> <i>pos</i>)</h3>
<p>Truncates the bit array at index position <i>pos</i>.</p>
<p>If <i>pos</i> is beyond the end of the array, nothing happens.</p>
<p><b>See also </b><a href="qbitarray.html#resize">resize</a>().</p>
<!-- @@@truncate -->
<!-- $$$operator!=[overload1]$$$operator!=constQBitArray& -->
<h3 class="fn" id="operator-not-eq"><a name="operator-not-eq"></a><span class="type">bool</span> QBitArray::<span class="name">operator!=</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>other</i>) const</h3>
<p>Returns <code>true</code> if <i>other</i> is not equal to this bit array; otherwise returns <code>false</code>.</p>
<p><b>See also </b><a href="qbitarray.html#operator-eq-eq">operator==</a>().</p>
<!-- @@@operator!= -->
<!-- $$$operator&=[overload1]$$$operator&=constQBitArray& -->
<h3 class="fn" id="operator-and-eq"><a name="operator-and-eq"></a><span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;QBitArray::<span class="name">operator&amp;=</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>other</i>)</h3>
<p>Performs the AND operation between all bits in this bit array and <i>other</i>. Assigns the result to this bit array, and returns a reference to it.</p>
<p>The result has the length of the longest of the two bit arrays, with any missing bits (if one array is shorter than the other) taken to be 0.</p>
<p>Example:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> a(<span class="number">3</span>);
  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> b(<span class="number">2</span>);
  a<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>; a<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">0</span>; a<span class="operator">[</span><span class="number">2</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>;   <span class="comment">// a: [ 1, 0, 1 ]</span>
  b<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>; b<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>;             <span class="comment">// b: [ 1, 1 ]</span>
  a <span class="operator">&amp;</span><span class="operator">=</span> b;                         <span class="comment">// a: [ 1, 0, 0 ]</span>

</pre>
<p><b>See also </b><a href="qbitarray.html#operator-and">operator&amp;</a>(), <a href="qbitarray.html#operator-7c-eq">operator|=</a>(), <a href="qbitarray.html#operator-5e-eq">operator^=</a>(), and <a href="qbitarray.html#operator-7e">operator~</a>().</p>
<!-- @@@operator&= -->
<!-- $$$operator=[overload1]$$$operator=constQBitArray& -->
<h3 class="fn" id="operator-eq"><a name="operator-eq"></a><span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;QBitArray::<span class="name">operator=</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>other</i>)</h3>
<p>Assigns <i>other</i> to this bit array and returns a reference to this bit array.</p>
<!-- @@@operator= -->
<!-- $$$operator=$$$operator=QBitArray&& -->
<h3 class="fn" id="operator-eq-1"><a name="operator-eq-1"></a><span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;QBitArray::<span class="name">operator=</span>(<span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;&amp;<i>other</i>)</h3>
<p>Moves <i>other</i> to this bit array and returns a reference to this bit array.</p>
<p>This function was introduced in  Qt 5.2.</p>
<!-- @@@operator= -->
<!-- $$$operator==[overload1]$$$operator==constQBitArray& -->
<h3 class="fn" id="operator-eq-eq"><a name="operator-eq-eq"></a><span class="type">bool</span> QBitArray::<span class="name">operator==</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>other</i>) const</h3>
<p>Returns <code>true</code> if <i>other</i> is equal to this bit array; otherwise returns <code>false</code>.</p>
<p><b>See also </b><a href="qbitarray.html#operator-not-eq">operator!=</a>().</p>
<!-- @@@operator== -->
<!-- $$$operator[][overload1]$$$operator[]int -->
<h3 class="fn" id="operator-5b-5d"><a name="operator-5b-5d"></a><span class="type">QBitRef</span> QBitArray::<span class="name">operator[]</span>(<span class="type">int</span> <i>i</i>)</h3>
<p>Returns the bit at index position <i>i</i> as a modifiable reference.</p>
<p><i>i</i> must be a valid index position in the bit array (i.e&#x2e;, 0 &lt;= <i>i</i> &lt; <a href="qbitarray.html#size">size</a>()).</p>
<p>Example:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> a(<span class="number">3</span>);
  a<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="keyword">false</span>;
  a<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="keyword">true</span>;
  a<span class="operator">[</span><span class="number">2</span><span class="operator">]</span> <span class="operator">=</span> a<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">^</span> a<span class="operator">[</span><span class="number">1</span><span class="operator">]</span>;

</pre>
<p>The return value is of type QBitRef, a helper class for <a href="qbitarray.html">QBitArray</a>. When you get an object of type QBitRef, you can assign to it, and the assignment will apply to the bit in the <a href="qbitarray.html">QBitArray</a> from which you got the reference.</p>
<p>The functions <a href="qbitarray.html#testBit">testBit</a>(), <a href="qbitarray.html#setBit">setBit</a>(), and <a href="qbitarray.html#clearBit">clearBit</a>() are slightly faster.</p>
<p><b>See also </b><a href="qbitarray.html#at">at</a>(), <a href="qbitarray.html#testBit">testBit</a>(), <a href="qbitarray.html#setBit">setBit</a>(), and <a href="qbitarray.html#clearBit">clearBit</a>().</p>
<!-- @@@operator[] -->
<!-- $$$operator[]$$$operator[]int -->
<h3 class="fn" id="operator-5b-5d-1"><a name="operator-5b-5d-1"></a><span class="type">bool</span> QBitArray::<span class="name">operator[]</span>(<span class="type">int</span> <i>i</i>) const</h3>
<p>This is an overloaded function.</p>
<!-- @@@operator[] -->
<!-- $$$operator[]$$$operator[]uint -->
<h3 class="fn" id="operator-5b-5d-2"><a name="operator-5b-5d-2"></a><span class="type">QBitRef</span> QBitArray::<span class="name">operator[]</span>(<span class="type"><a href="qtglobal.html#uint-typedef">uint</a></span> <i>i</i>)</h3>
<p>This is an overloaded function.</p>
<!-- @@@operator[] -->
<!-- $$$operator[]$$$operator[]uint -->
<h3 class="fn" id="operator-5b-5d-3"><a name="operator-5b-5d-3"></a><span class="type">bool</span> QBitArray::<span class="name">operator[]</span>(<span class="type"><a href="qtglobal.html#uint-typedef">uint</a></span> <i>i</i>) const</h3>
<p>This is an overloaded function.</p>
<!-- @@@operator[] -->
<!-- $$$operator^=[overload1]$$$operator^=constQBitArray& -->
<h3 class="fn" id="operator-5e-eq"><a name="operator-5e-eq"></a><span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;QBitArray::<span class="name">operator^=</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>other</i>)</h3>
<p>Performs the XOR operation between all bits in this bit array and <i>other</i>. Assigns the result to this bit array, and returns a reference to it.</p>
<p>The result has the length of the longest of the two bit arrays, with any missing bits (if one array is shorter than the other) taken to be 0.</p>
<p>Example:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> a(<span class="number">3</span>);
  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> b(<span class="number">2</span>);
  a<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>; a<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">0</span>; a<span class="operator">[</span><span class="number">2</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>;   <span class="comment">// a: [ 1, 0, 1 ]</span>
  b<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>; b<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>;             <span class="comment">// b: [ 1, 1 ]</span>
  a <span class="operator">^</span><span class="operator">=</span> b;                         <span class="comment">// a: [ 0, 1, 1 ]</span>

</pre>
<p><b>See also </b><a href="qbitarray.html#operator-5e">operator^</a>(), <a href="qbitarray.html#operator-and-eq">operator&amp;=</a>(), <a href="qbitarray.html#operator-7c-eq">operator|=</a>(), and <a href="qbitarray.html#operator-7e">operator~</a>().</p>
<!-- @@@operator^= -->
<!-- $$$operator|=[overload1]$$$operator|=constQBitArray& -->
<h3 class="fn" id="operator-7c-eq"><a name="operator-7c-eq"></a><span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;QBitArray::<span class="name">operator|=</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>other</i>)</h3>
<p>Performs the OR operation between all bits in this bit array and <i>other</i>. Assigns the result to this bit array, and returns a reference to it.</p>
<p>The result has the length of the longest of the two bit arrays, with any missing bits (if one array is shorter than the other) taken to be 0.</p>
<p>Example:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> a(<span class="number">3</span>);
  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> b(<span class="number">2</span>);
  a<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>; a<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">0</span>; a<span class="operator">[</span><span class="number">2</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>;   <span class="comment">// a: [ 1, 0, 1 ]</span>
  b<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>; b<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>;             <span class="comment">// b: [ 1, 1 ]</span>
  a <span class="operator">|</span><span class="operator">=</span> b;                         <span class="comment">// a: [ 1, 1, 1 ]</span>

</pre>
<p><b>See also </b><a href="qbitarray.html#operator-7c">operator|</a>(), <a href="qbitarray.html#operator-and-eq">operator&amp;=</a>(), <a href="qbitarray.html#operator-5e-eq">operator^=</a>(), and <a href="qbitarray.html#operator-7e">operator~</a>().</p>
<!-- @@@operator|= -->
<!-- $$$operator~[overload1]$$$operator~ -->
<h3 class="fn" id="operator-7e"><a name="operator-7e"></a><span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> QBitArray::<span class="name">operator~</span>() const</h3>
<p>Returns a bit array that contains the inverted bits of this bit array.</p>
<p>Example:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> a(<span class="number">3</span>);
  <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> b;
  a<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>; a<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">0</span>; a<span class="operator">[</span><span class="number">2</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>;   <span class="comment">// a: [ 1, 0, 1 ]</span>
  b <span class="operator">=</span> <span class="operator">~</span>a;                         <span class="comment">// b: [ 0, 1, 0 ]</span>

</pre>
<p><b>See also </b><a href="qbitarray.html#operator-and">operator&amp;</a>(), <a href="qbitarray.html#operator-7c">operator|</a>(), and <a href="qbitarray.html#operator-5e">operator^</a>().</p>
<!-- @@@operator~ -->
</div>
<div class="relnonmem">
<h2>Related Non-Members</h2>
<!-- $$$operator&[overload1]$$$operator&constQBitArray&constQBitArray& -->
<h3 class="fn" id="operator-and"><a name="operator-and"></a><span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> <span class="name">operator&amp;</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>a1</i>, const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>a2</i>)</h3>
<p>Returns a bit array that is the AND of the bit arrays <i>a1</i> and <i>a2</i>.</p>
<p>The result has the length of the longest of the two bit arrays, with any missing bits (if one array is shorter than the other) taken to be 0.</p>
<p>Example:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html">QBitArray</a></span> a(<span class="number">3</span>);
  <span class="type"><a href="qbitarray.html">QBitArray</a></span> b(<span class="number">2</span>);
  <span class="type"><a href="qbitarray.html">QBitArray</a></span> c;
  a<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>; a<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">0</span>; a<span class="operator">[</span><span class="number">2</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>;   <span class="comment">// a: [ 1, 0, 1 ]</span>
  b<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>; b<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>;             <span class="comment">// b: [ 1, 1 ]</span>
  c <span class="operator">=</span> a <span class="operator">&amp;</span> b;                      <span class="comment">// c: [ 1, 0, 0 ]</span>

</pre>
<p><b>See also </b><a href="qbitarray.html#operator-and-eq">operator&amp;=</a>(), <a href="qbitarray.html#operator-7c">operator|</a>(), and <a href="qbitarray.html#operator-5e">operator^</a>().</p>
<!-- @@@operator& -->
<!-- $$$operator<<[overload1]$$$operator<<QDataStream&constQBitArray& -->
<h3 class="fn" id="operator-lt-lt"><a name="operator-lt-lt"></a><span class="type"><a href="qdatastream.html">QDataStream</a></span> &amp;<span class="name">operator&lt;&lt;</span>(<span class="type"><a href="qdatastream.html">QDataStream</a></span> &amp;<i>out</i>, const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>ba</i>)</h3>
<p>Writes bit array <i>ba</i> to stream <i>out</i>.</p>
<p><b>See also </b><a href="datastreamformat.html">Format of the QDataStream operators</a>.</p>
<!-- @@@operator<< -->
<!-- $$$operator>>[overload1]$$$operator>>QDataStream&QBitArray& -->
<h3 class="fn" id="operator-gt-gt"><a name="operator-gt-gt"></a><span class="type"><a href="qdatastream.html">QDataStream</a></span> &amp;<span class="name">operator&gt;&gt;</span>(<span class="type"><a href="qdatastream.html">QDataStream</a></span> &amp;<i>in</i>, <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>ba</i>)</h3>
<p>Reads a bit array into <i>ba</i> from stream <i>in</i>.</p>
<p><b>See also </b><a href="datastreamformat.html">Format of the QDataStream operators</a>.</p>
<!-- @@@operator>> -->
<!-- $$$operator^[overload1]$$$operator^constQBitArray&constQBitArray& -->
<h3 class="fn" id="operator-5e"><a name="operator-5e"></a><span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> <span class="name">operator^</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>a1</i>, const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>a2</i>)</h3>
<p>Returns a bit array that is the XOR of the bit arrays <i>a1</i> and <i>a2</i>.</p>
<p>The result has the length of the longest of the two bit arrays, with any missing bits (if one array is shorter than the other) taken to be 0.</p>
<p>Example:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html">QBitArray</a></span> a(<span class="number">3</span>);
  <span class="type"><a href="qbitarray.html">QBitArray</a></span> b(<span class="number">2</span>);
  <span class="type"><a href="qbitarray.html">QBitArray</a></span> c;
  a<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>; a<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">0</span>; a<span class="operator">[</span><span class="number">2</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>;   <span class="comment">// a: [ 1, 0, 1 ]</span>
  b<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>; b<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>;             <span class="comment">// b: [ 1, 1 ]</span>
  c <span class="operator">=</span> a <span class="operator">^</span> b;                      <span class="comment">// c: [ 0, 1, 1 ]</span>

</pre>
<p><b>See also </b><a href="qbitarray.html">operator^=</a>(), <a href="qbitarray.html">operator&amp;</a>(), and <a href="qbitarray.html">operator|</a>().</p>
<!-- @@@operator^ -->
<!-- $$$operator|[overload1]$$$operator|constQBitArray&constQBitArray& -->
<h3 class="fn" id="operator-7c"><a name="operator-7c"></a><span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> <span class="name">operator|</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>a1</i>, const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &amp;<i>a2</i>)</h3>
<p>Returns a bit array that is the OR of the bit arrays <i>a1</i> and <i>a2</i>.</p>
<p>The result has the length of the longest of the two bit arrays, with any missing bits (if one array is shorter than the other) taken to be 0.</p>
<p>Example:</p>
<pre class="cpp">

  <span class="type"><a href="qbitarray.html">QBitArray</a></span> a(<span class="number">3</span>);
  <span class="type"><a href="qbitarray.html">QBitArray</a></span> b(<span class="number">2</span>);
  <span class="type"><a href="qbitarray.html">QBitArray</a></span> c;
  a<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>; a<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">0</span>; a<span class="operator">[</span><span class="number">2</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>;   <span class="comment">// a: [ 1, 0, 1 ]</span>
  b<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>; b<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="number">1</span>;             <span class="comment">// b: [ 1, 1 ]</span>
  c <span class="operator">=</span> a <span class="operator">|</span> b;                      <span class="comment">// c: [ 1, 1, 1 ]</span>

</pre>
<p><b>See also </b><a href="qbitarray.html#operator-7c-eq">QBitArray::operator|=</a>(), <a href="qbitarray.html#operator-and">operator&amp;</a>(), and <a href="qbitarray.html#operator-5e">operator^</a>().</p>
<!-- @@@operator| -->
</div>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2017 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>