Sophie

Sophie

distrib > Mageia > 7 > x86_64 > by-pkgid > 1dd17e0d683ef79b4bb6872bbf359d7f > files > 4912

qt4-doc-4.8.7-26.2.mga7.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qbitarray.cpp -->
  <title>Qt 4.8: QBitArray Class Reference</title>
  <link rel="stylesheet" type="text/css" href="style/style.css" />
  <script src="scripts/jquery.js" type="text/javascript"></script>
  <script src="scripts/functions.js" type="text/javascript"></script>
  <link rel="stylesheet" type="text/css" href="style/superfish.css" />
  <link rel="stylesheet" type="text/css" href="style/narrow.css" />
  <!--[if IE]>
<meta name="MSSmartTagsPreventParsing" content="true">
<meta http-equiv="imagetoolbar" content="no">
<![endif]-->
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="style/style_ie6.css">
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="style/style_ie7.css">
<![endif]-->
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="style/style_ie8.css">
<![endif]-->

<script src="scripts/superfish.js" type="text/javascript"></script>
<script src="scripts/narrow.js" type="text/javascript"></script>

</head>
<body class="" onload="CheckEmptyAndLoadList();">
 <div class="header" id="qtdocheader">
    <div class="content"> 
    <div id="nav-logo">
      <a href="index.html">Home</a></div>
    <a href="index.html" class="qtref"><span>Qt Reference Documentation</span></a>
    <div id="narrowsearch"></div>
    <div id="nav-topright">
      <ul>
        <li class="nav-topright-home"><a href="http://qt.digia.com/">Qt HOME</a></li>
        <li class="nav-topright-dev"><a href="http://qt-project.org/">DEV</a></li>
        <li class="nav-topright-doc nav-topright-doc-active"><a href="http://qt-project.org/doc/">
          DOC</a></li>
        <li class="nav-topright-blog"><a href="http://blog.qt.digia.com/">BLOG</a></li>
      </ul>
    </div>
    <div id="shortCut">
      <ul>
        <li class="shortCut-topleft-inactive"><span><a href="index.html">Qt 4.8</a></span></li>
        <li class="shortCut-topleft-active"><a href="http://qt-project.org/doc/">ALL VERSIONS        </a></li>
      </ul>
     </div>
 <ul class="sf-menu" id="narrowmenu"> 
             <li><a href="#">API Lookup</a> 
                 <ul> 
                     <li><a href="classes.html">Class index</a></li> 
           <li><a href="functions.html">Function index</a></li> 
           <li><a href="modules.html">Modules</a></li> 
           <li><a href="namespaces.html">Namespaces</a></li> 
           <li><a href="qtglobal.html">Global Declarations</a></li> 
           <li><a href="qdeclarativeelements.html">QML elements</a></li> 
             </ul> 
             </li> 
             <li><a href="#">Qt Topics</a> 
                 <ul> 
                        <li><a href="qt-basic-concepts.html">Programming with Qt</a></li>  
                        <li><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li>  
                        <li><a href="qt-gui-concepts.html">UI Design with Qt</a></li>  
                        <li><a href="supported-platforms.html">Supported Platforms</a></li>  
                        <li><a href="technology-apis.html">Qt and Key Technologies</a></li>  
                        <li><a href="best-practices.html">How-To's and Best Practices</a></li>  
              </ul> 
                 </li> 
                 <li><a href="#">Examples</a> 
                     <ul> 
                       <li><a href="all-examples.html">Examples</a></li> 
                       <li><a href="tutorials.html">Tutorials</a></li> 
                       <li><a href="demos.html">Demos</a></li> 
                       <li><a href="qdeclarativeexamples.html">QML Examples</a></li> 
                </ul> 
                     </li> 
                 </ul> 
    </div>
  </div>
  <div class="wrapper">
    <div class="hd">
      <span></span>
    </div>
    <div class="bd group">
      <div class="sidebar">
        <div class="searchlabel">
          Search index:</div>
        <div class="search" id="sidebarsearch">
          <form id="qtdocsearch" action="" onsubmit="return false;">
            <fieldset>
              <input type="text" name="searchstring" id="pageType" value="" />
 <div id="resultdialog"> 
 <a href="#" id="resultclose">Close</a> 
 <p id="resultlinks" class="all"><a href="#" id="showallresults">All</a> | <a href="#" id="showapiresults">API</a> | <a href="#" id="showarticleresults">Articles</a> | <a href="#" id="showexampleresults">Examples</a></p> 
 <p id="searchcount" class="all"><span id="resultcount"></span><span id="apicount"></span><span id="articlecount"></span><span id="examplecount"></span>&nbsp;results:</p> 
 <ul id="resultlist" class="all"> 
 </ul> 
 </div> 
            </fieldset>
          </form>
        </div>
        <div class="box first bottombar" id="lookup">
          <h2 title="API Lookup"><span></span>
            API Lookup</h2>
          <div  id="list001" class="list">
          <ul id="ul001" >
              <li class="defaultLink"><a href="classes.html">Class index</a></li>
              <li class="defaultLink"><a href="functions.html">Function index</a></li>
              <li class="defaultLink"><a href="modules.html">Modules</a></li>
              <li class="defaultLink"><a href="namespaces.html">Namespaces</a></li>
              <li class="defaultLink"><a href="qtglobal.html">Global Declarations</a></li>
              <li class="defaultLink"><a href="qdeclarativeelements.html">QML elements</a></li>
            </ul> 
          </div>
        </div>
        <div class="box bottombar" id="topics">
          <h2 title="Qt Topics"><span></span>
            Qt Topics</h2>
          <div id="list002" class="list">
            <ul id="ul002" >
               <li class="defaultLink"><a href="qt-basic-concepts.html">Programming with Qt</a></li> 
               <li class="defaultLink"><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li> 
               <li class="defaultLink"><a href="qt-gui-concepts.html">UI Design with Qt</a></li> 
               <li class="defaultLink"><a href="supported-platforms.html">Supported Platforms</a></li>  
               <li class="defaultLink"><a href="technology-apis.html">Qt and Key Technologies</a></li> 
               <li class="defaultLink"><a href="best-practices.html">How-To's and Best Practices</a></li> 
            </ul>  
          </div>
        </div>
        <div class="box" id="examples">
          <h2 title="Examples"><span></span>
            Examples</h2>
          <div id="list003" class="list">
        <ul id="ul003">
              <li class="defaultLink"><a href="all-examples.html">Examples</a></li>
              <li class="defaultLink"><a href="tutorials.html">Tutorials</a></li>
              <li class="defaultLink"><a href="demos.html">Demos</a></li>
              <li class="defaultLink"><a href="qdeclarativeexamples.html">QML Examples</a></li>
            </ul> 
          </div>
        </div>
      </div>
      <div class="wrap">
        <div class="toolbar">
          <div class="breadcrumb toolblock">
            <ul>
              <li class="first"><a href="index.html">Home</a></li>
              <!--  Breadcrumbs go here -->
<li><a href="modules.html">Modules</a></li>
<li><a href="qtcore.html">QtCore</a></li>
<li>QBitArray</li>
            </ul>
          </div>
          <div class="toolbuttons toolblock">
            <ul>
              <li id="smallA" class="t_button">A</li>
              <li id="medA" class="t_button active">A</li>
              <li id="bigA" class="t_button">A</li>
              <li id="print" class="t_button"><a href="javascript:this.print();">
                <span>Print</span></a></li>
            </ul>
        </div>
        </div>
        <div class="content mainContent">
<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>
<h1 class="title">QBitArray Class Reference</h1>
<!-- $$$QBitArray-brief -->
<p>The QBitArray class provides an array of bits. <a href="#details">More...</a></p>
<!-- @@@QBitArray -->
<pre class="cpp"> <span class="preprocessor">#include &lt;QBitArray&gt;</span></pre><p><b>Note:</b> All functions in this class are <a href="threads-reentrancy.html#reentrant">reentrant</a>.</p>
<ul>
<li><a href="qbitarray-members.html">List of all members, including inherited members</a></li>
</ul>
<a name="public-functions"></a>
<h2>Public Functions</h2>
<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-2">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-3">QBitArray</a></b> ( const QBitArray &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-2">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-2">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-2">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"> 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-2">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-3">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-4">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>
<a name="related-non-members"></a>
<h2>Related Non-Members</h2>
<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-108">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-60">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>
<a name="details"></a>
<!-- $$$QBitArray-description -->
<div class="descr">
<h2>Detailed Description</h2>
<p>The QBitArray class provides an array of bits.</p>
<p>A QBitArray 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 QBitArray containing 200 bits initialized to false (0):</p>
<pre class="cpp"> <span class="type">QBitArray</span> ba(<span class="number">200</span>);</pre>
<p>To initialize the bits to true, either pass <tt>true</tt> as second argument to the constructor, or call <a href="qbitarray.html#fill">fill</a>() later on.</p>
<p>QBitArray 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">QBitArray</span> ba;
 ba<span class="operator">.</span><a href="qbitarray.html#resize">resize</a>(<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">QBitArray</span> ba(<span class="number">3</span>);
 ba<span class="operator">.</span><a href="qbitarray.html#setBit">setBit</a>(<span class="number">0</span><span class="operator">,</span> <span class="keyword">true</span>);
 ba<span class="operator">.</span><a href="qbitarray.html#setBit">setBit</a>(<span class="number">1</span><span class="operator">,</span> <span class="keyword">false</span>);
 ba<span class="operator">.</span><a href="qbitarray.html#setBit">setBit</a>(<span class="number">2</span><span class="operator">,</span> <span class="keyword">true</span>);</pre>
<p>QBitArray supports <tt>&amp;</tt> (<a href="qbitarray.html#operator-and">AND</a>), <tt>|</tt> (<a href="qbitarray.html#operator-7c">OR</a>), <tt>^</tt> (<a href="qbitarray.html#operator-5e">XOR</a>), <tt>~</tt> (<a href="qbitarray.html#operator-7e">NOT</a>), as well as <tt>&amp;=</tt>, <tt>|=</tt>, and <tt>^=</tt>. 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">QBitArray</span> x(<span class="number">5</span>);
 x<span class="operator">.</span><a href="qbitarray.html#setBit">setBit</a>(<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">QBitArray</span> y(<span class="number">5</span>);
 y<span class="operator">.</span><a href="qbitarray.html#setBit">setBit</a>(<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, QBitArray 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 QBitArray'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">QBitArray</span>()<span class="operator">.</span><a href="qbitarray.html#isNull">isNull</a>();           <span class="comment">// returns true</span>
 <span class="type">QBitArray</span>()<span class="operator">.</span><a href="qbitarray.html#isEmpty">isEmpty</a>();          <span class="comment">// returns true</span>

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

 <span class="type">QBitArray</span>(<span class="number">3</span>)<span class="operator">.</span><a href="qbitarray.html#isNull">isNull</a>();          <span class="comment">// returns false</span>
 <span class="type">QBitArray</span>(<span class="number">3</span>)<span class="operator">.</span><a href="qbitarray.html#isEmpty">isEmpty</a>();         <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 QBitArray(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"><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"><a name="QBitArray-2"></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"><a name="QBitArray-3"></a>QBitArray::<span class="name">QBitArray</span> ( const <span class="type">QBitArray</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">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 -->
<!-- $$$at[overload1]$$$atint -->
<h3 class="fn"><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"><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"><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"><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"><a name="count-2"></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"><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 false. 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</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"><a name="fill-2"></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 and excluding <i>end</i> to <i>value</i>.</p>
<p><i>begin</i> and <i>end</i> must be a valid index position in the bit array (i.e&#x2e;, 0 &lt;= <i>begin</i> &lt;= <a href="qbitarray.html#size">size</a>() and 0 &lt;= <i>end</i> &lt;= <a href="qbitarray.html#size">size</a>()).</p>
<!-- @@@fill -->
<!-- $$$isEmpty[overload1]$$$isEmpty -->
<h3 class="fn"><a name="isEmpty"></a><span class="type">bool</span> QBitArray::<span class="name">isEmpty</span> () const</h3>
<p>Returns true 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"><a name="isNull"></a><span class="type">bool</span> QBitArray::<span class="name">isNull</span> () const</h3>
<p>Returns true if this bit array is null; otherwise returns false.</p>
<p>Example:</p>
<pre class="cpp"> <span class="type"><a href="qbitarray.html">QBitArray</a></span>()<span class="operator">.</span>isNull();           <span class="comment">// returns true</span>
 <span class="type"><a href="qbitarray.html">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</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"><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"><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"><a name="setBit-2"></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"><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"><a name="swap"></a><span class="type">void</span> QBitArray::<span class="name">swap</span> ( <span class="type">QBitArray</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"><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 true if the bit at index position <i>i</i> is 1; otherwise returns false.</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"><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"><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"><a name="operator-not-eq"></a><span class="type">bool</span> QBitArray::<span class="name">operator!=</span> ( const <span class="type">QBitArray</span> &amp; <i>other</i> ) const</h3>
<p>Returns true if <i>other</i> is not equal to this bit array; otherwise returns false.</p>
<p><b>See also </b><a href="qbitarray.html#operator-eq-eq">operator==</a>().</p>
<!-- @@@operator!= -->
<!-- $$$operator&=[overload1]$$$operator&=constQBitArray& -->
<h3 class="fn"><a name="operator-and-eq"></a><span class="type">QBitArray</span> &amp; QBitArray::<span class="name">operator&amp;=</span> ( const <span class="type">QBitArray</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</a></span> a(<span class="number">3</span>);
 <span class="type"><a href="qbitarray.html">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">0</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"><a name="operator-eq"></a><span class="type">QBitArray</span> &amp; QBitArray::<span class="name">operator=</span> ( const <span class="type">QBitArray</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==[overload1]$$$operator==constQBitArray& -->
<h3 class="fn"><a name="operator-eq-eq"></a><span class="type">bool</span> QBitArray::<span class="name">operator==</span> ( const <span class="type">QBitArray</span> &amp; <i>other</i> ) const</h3>
<p>Returns true if <i>other</i> is equal to this bit array; otherwise returns false.</p>
<p><b>See also </b><a href="qbitarray.html#operator-not-eq">operator!=</a>().</p>
<!-- @@@operator== -->
<!-- $$$operator[][overload1]$$$operator[]int -->
<h3 class="fn"><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</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"><a name="operator-5b-5d-2"></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"><a name="operator-5b-5d-3"></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"><a name="operator-5b-5d-4"></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"><a name="operator-5e-eq"></a><span class="type">QBitArray</span> &amp; QBitArray::<span class="name">operator^=</span> ( const <span class="type">QBitArray</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</a></span> a(<span class="number">3</span>);
 <span class="type"><a href="qbitarray.html">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">0</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"><a name="operator-7c-eq"></a><span class="type">QBitArray</span> &amp; QBitArray::<span class="name">operator|=</span> ( const <span class="type">QBitArray</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</a></span> a(<span class="number">3</span>);
 <span class="type"><a href="qbitarray.html">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">0</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"><a name="operator-7e"></a><span class="type">QBitArray</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</a></span> a(<span class="number">3</span>);
 <span class="type"><a href="qbitarray.html">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"><a name="operator-and"></a><span class="type">QBitArray</span> <span class="name">operator&amp;</span> ( const <span class="type">QBitArray</span> &amp; <i>a1</i>, const <span class="type">QBitArray</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">0</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">QBitArray::operator&amp;=</a>(), <a href="qbitarray.html#operator-7c">operator|</a>(), and <a href="qbitarray.html#operator-5e">operator^</a>().</p>
<!-- @@@operator& -->
<!-- $$$operator<<$$$operator<<QDataStream&constQBitArray& -->
<h3 class="fn"><a name="operator-lt-lt-108"></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">QBitArray</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>>$$$operator>>QDataStream&QBitArray& -->
<h3 class="fn"><a name="operator-gt-gt-60"></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">QBitArray</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"><a name="operator-5e"></a><span class="type">QBitArray</span> <span class="name">operator^</span> ( const <span class="type">QBitArray</span> &amp; <i>a1</i>, const <span class="type">QBitArray</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">0</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-5e-eq">QBitArray::operator^=</a>(), <a href="qbitarray.html#operator-and">operator&amp;</a>(), and <a href="qbitarray.html#operator-7c">operator|</a>().</p>
<!-- @@@operator^ -->
<!-- $$$operator|[overload1]$$$operator|constQBitArray&constQBitArray& -->
<h3 class="fn"><a name="operator-7c"></a><span class="type">QBitArray</span> <span class="name">operator|</span> ( const <span class="type">QBitArray</span> &amp; <i>a1</i>, const <span class="type">QBitArray</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">0</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 class="ft">
      <span></span>
    </div>
  </div> 
  <div class="footer">
    <p>
      <acronym title="Copyright">&copy;</acronym> 2015 The Qt Company Ltd.
      Documentation contributions included herein are the copyrights of
      their respective owners.</p>
    <br />
    <p>
      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.</p>
    <p>
      Documentation sources may be obtained from <a href="http://www.qt-project.org">
      www.qt-project.org</a>.</p>
    <br />
    <p>
      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. <a title="Privacy Policy"
      href="http://en.gitorious.org/privacy_policy/">Privacy Policy</a></p>
  </div>

  <script src="scripts/functions.js" type="text/javascript"></script>
</body>
</html>