<?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 <QBitArray></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 &<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 &&<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 &<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 &<i>other</i>) const</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> QBitArray &</td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-and-eq">operator&=</a></b>(const QBitArray &<i>other</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> QBitArray &</td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-eq">operator=</a></b>(const QBitArray &<i>other</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> QBitArray &</td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-eq-1">operator=</a></b>(QBitArray &&<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 &<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 &</td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-5e-eq">operator^=</a></b>(const QBitArray &<i>other</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> QBitArray &</td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-7c-eq">operator|=</a></b>(const QBitArray &<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&</a></b>(const QBitArray &<i>a1</i>, const QBitArray &<i>a2</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> QDataStream &</td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-lt-lt">operator<<</a></b>(QDataStream &<i>out</i>, const QBitArray &<i>ba</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> QDataStream &</td><td class="memItemRight bottomAlign"><b><a href="qbitarray.html#operator-gt-gt">operator>></a></b>(QDataStream &<i>in</i>, QBitArray &<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 &<i>a1</i>, const QBitArray &<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 &<i>a1</i>, const QBitArray &<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>&</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>&=</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> &<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> &&<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., 0 <= <i>i</i> < <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., 0 <= <i>i</i> < <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 <= <i>begin</i> < <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 <= <i>end</i> <= <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., 0 <= <i>i</i> < <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> &<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., 0 <= <i>i</i> < <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., 0 <= <i>i</i> < <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> &<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> &QBitArray::<span class="name">operator&=</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &<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">&</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&</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> &QBitArray::<span class="name">operator=</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &<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> &QBitArray::<span class="name">operator=</span>(<span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &&<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> &<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., 0 <= <i>i</i> < <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> &QBitArray::<span class="name">operator^=</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &<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&=</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> &QBitArray::<span class="name">operator|=</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &<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&=</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&</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&</span>(const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &<i>a1</i>, const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &<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">&</span> b; <span class="comment">// c: [ 1, 0, 0 ]</span> </pre> <p><b>See also </b><a href="qbitarray.html#operator-and-eq">operator&=</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> &<span class="name">operator<<</span>(<span class="type"><a href="qdatastream.html">QDataStream</a></span> &<i>out</i>, const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &<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> &<span class="name">operator>></span>(<span class="type"><a href="qdatastream.html">QDataStream</a></span> &<i>in</i>, <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &<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> &<i>a1</i>, const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &<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&</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> &<i>a1</i>, const <span class="type"><a href="qbitarray.html#QBitArray">QBitArray</a></span> &<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&</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">©</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>