You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
373 lines
11 KiB
373 lines
11 KiB
'\" t
|
|
.TH QBitArray 3qt "2 February 2007" "Trolltech AS" \" -*- nroff -*-
|
|
.\" Copyright 1992-2007 Trolltech ASA. All rights reserved. See the
|
|
.\" license file included in the distribution for a complete license
|
|
.\" statement.
|
|
.\"
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
QBitArray \- Array of bits
|
|
.SH SYNOPSIS
|
|
All the functions in this class are reentrant when Qt is built with thread support.</p>
|
|
.PP
|
|
\fC#include <ntqbitarray.h>\fR
|
|
.PP
|
|
Inherits QByteArray.
|
|
.PP
|
|
.SS "Public Members"
|
|
.in +1c
|
|
.ti -1c
|
|
.BI "\fBQBitArray\fR ()"
|
|
.br
|
|
.ti -1c
|
|
.BI "\fBQBitArray\fR ( uint size )"
|
|
.br
|
|
.ti -1c
|
|
.BI "\fBQBitArray\fR ( const QBitArray & a )"
|
|
.br
|
|
.ti -1c
|
|
.BI "QBitArray & \fBoperator=\fR ( const QBitArray & a )"
|
|
.br
|
|
.ti -1c
|
|
.BI "uint \fBsize\fR () const"
|
|
.br
|
|
.ti -1c
|
|
.BI "bool \fBresize\fR ( uint size )"
|
|
.br
|
|
.ti -1c
|
|
.BI "bool \fBfill\fR ( bool v, int size = -1 )"
|
|
.br
|
|
.ti -1c
|
|
.BI "virtual void \fBdetach\fR ()"
|
|
.br
|
|
.ti -1c
|
|
.BI "QBitArray \fBcopy\fR () const"
|
|
.br
|
|
.ti -1c
|
|
.BI "bool \fBtestBit\fR ( uint index ) const"
|
|
.br
|
|
.ti -1c
|
|
.BI "void \fBsetBit\fR ( uint index )"
|
|
.br
|
|
.ti -1c
|
|
.BI "void \fBsetBit\fR ( uint index, bool value )"
|
|
.br
|
|
.ti -1c
|
|
.BI "void \fBclearBit\fR ( uint index )"
|
|
.br
|
|
.ti -1c
|
|
.BI "bool \fBtoggleBit\fR ( uint index )"
|
|
.br
|
|
.ti -1c
|
|
.BI "bool \fBat\fR ( uint index ) const"
|
|
.br
|
|
.ti -1c
|
|
.BI "QBitVal \fBoperator[]\fR ( int index )"
|
|
.br
|
|
.ti -1c
|
|
.BI "bool \fBoperator[]\fR ( int index ) const"
|
|
.br
|
|
.ti -1c
|
|
.BI "QBitArray & \fBoperator&=\fR ( const QBitArray & a )"
|
|
.br
|
|
.ti -1c
|
|
.BI "QBitArray & \fBoperator|=\fR ( const QBitArray & a )"
|
|
.br
|
|
.ti -1c
|
|
.BI "QBitArray & \fBoperator^=\fR ( const QBitArray & a )"
|
|
.br
|
|
.ti -1c
|
|
.BI "QBitArray \fBoperator~\fR () const"
|
|
.br
|
|
.in -1c
|
|
.SH RELATED FUNCTION DOCUMENTATION
|
|
.in +1c
|
|
.ti -1c
|
|
.BI "QBitArray \fBoperator&\fR ( const QBitArray & a1, const QBitArray & a2 )"
|
|
.br
|
|
.ti -1c
|
|
.BI "QBitArray \fBoperator|\fR ( const QBitArray & a1, const QBitArray & a2 )"
|
|
.br
|
|
.ti -1c
|
|
.BI "QBitArray \fBoperator^\fR ( const QBitArray & a1, const QBitArray & a2 )"
|
|
.br
|
|
.ti -1c
|
|
.BI "QDataStream & \fBoperator<<\fR ( QDataStream & s, const QBitArray & a )"
|
|
.br
|
|
.ti -1c
|
|
.BI "QDataStream & \fBoperator>>\fR ( QDataStream & s, QBitArray & a )"
|
|
.br
|
|
.in -1c
|
|
.SH DESCRIPTION
|
|
The QBitArray class provides an array of bits.
|
|
.PP
|
|
Because QBitArray is a QMemArray, it uses explicit sharing with a reference count.
|
|
.PP
|
|
A QBitArray is a special byte array that can access individual bits and perform bit-operations (AND, OR, XOR and NOT) on entire arrays or bits.
|
|
.PP
|
|
Bits can be manipulated by the setBit() and clearBit() functions, but it is also possible to use the indexing [] operator to test and set individual bits. The [] operator is a little slower than setBit() and clearBit() because some tricks are required to implement single-bit assignments.
|
|
.PP
|
|
Example:
|
|
.PP
|
|
.nf
|
|
.br
|
|
QBitArray a(3);
|
|
.br
|
|
a.setBit( 0 );
|
|
.br
|
|
a.clearBit( 1 );
|
|
.br
|
|
a.setBit( 2 ); // a = [1 0 1]
|
|
.br
|
|
.br
|
|
QBitArray b(3);
|
|
.br
|
|
b[0] = 1;
|
|
.br
|
|
b[1] = 1;
|
|
.br
|
|
b[2] = 0; // b = [1 1 0]
|
|
.br
|
|
.br
|
|
QBitArray c;
|
|
.br
|
|
c = ~a & b; // c = [0 1 0]
|
|
.br
|
|
.fi
|
|
.PP
|
|
When a QBitArray is constructed the bits are uninitialized. Use fill() to set all the bits to 0 or 1. The array can be resized with resize() and copied with copy(). Bits can be set with setBit() and cleared with clearBit(). Bits can be toggled with toggleBit(). A bit's value can be obtained with testBit() and with at().
|
|
.PP
|
|
QBitArray supports the & (AND), | (OR), ^ (XOR) and ~ (NOT) operators.
|
|
.PP
|
|
See also Collection Classes, Implicitly and Explicitly Shared Classes, and Non-GUI Classes.
|
|
.SH MEMBER FUNCTION DOCUMENTATION
|
|
.SH "QBitArray::QBitArray ()"
|
|
Constructs an empty bit array.
|
|
.SH "QBitArray::QBitArray ( uint size )"
|
|
Constructs a bit array of \fIsize\fR bits. The bits are uninitialized.
|
|
.PP
|
|
See also fill().
|
|
.SH "QBitArray::QBitArray ( const QBitArray & a )"
|
|
Constructs a shallow copy of \fIa\fR.
|
|
.SH "bool QBitArray::at ( uint index ) const"
|
|
Returns the value (0 or 1) of the bit at position \fIindex\fR.
|
|
.PP
|
|
See also operator[]().
|
|
.SH "void QBitArray::clearBit ( uint index )"
|
|
Clears the bit at position \fIindex\fR, i.e. sets it to 0.
|
|
.PP
|
|
See also setBit() and toggleBit().
|
|
.SH "QBitArray QBitArray::copy () const"
|
|
Returns a deep copy of the bit array.
|
|
.PP
|
|
See also detach().
|
|
.SH "void QBitArray::detach ()\fC [virtual]\fR"
|
|
Detaches from shared bit array data and makes sure that this bit array is the only one referring to the data.
|
|
.PP
|
|
If multiple bit arrays share common data, this bit array dereferences the data and gets a copy of the data. Nothing happens if there is only a single reference.
|
|
.PP
|
|
See also copy().
|
|
.PP
|
|
Reimplemented from QMemArray.
|
|
.SH "bool QBitArray::fill ( bool v, int size = -1 )"
|
|
Fills the bit array with \fIv\fR (1's if \fIv\fR is TRUE, or 0's if \fIv\fR is FALSE).
|
|
.PP
|
|
fill() resizes the bit array to \fIsize\fR bits if \fIsize\fR is nonnegative.
|
|
.PP
|
|
Returns FALSE if a nonnegative \fIsize\fR was specified and the bit array could not be resized; otherwise returns TRUE.
|
|
.PP
|
|
See also resize().
|
|
.SH "QBitArray & QBitArray::operator&= ( const QBitArray & a )"
|
|
Performs the AND operation between all bits in this bit array and \fIa\fR. Returns a reference to this bit array.
|
|
.PP
|
|
The result has the length of the longest of the two bit arrays, with any missing bits (i.e. if one array is shorter than the other), taken to be 0.
|
|
.PP
|
|
.nf
|
|
.br
|
|
QBitArray a( 3 ), b( 2 );
|
|
.br
|
|
a[0] = 1; a[1] = 0; a[2] = 1; // a = [1 0 1]
|
|
.br
|
|
b[0] = 1; b[1] = 0; // b = [1 0]
|
|
.br
|
|
a &= b; // a = [1 0 0]
|
|
.br
|
|
.fi
|
|
.PP
|
|
See also operator|=(), operator^=(), and operator~().
|
|
.SH "QBitArray & QBitArray::operator= ( const QBitArray & a )"
|
|
Assigns a shallow copy of \fIa\fR to this bit array and returns a reference to this array.
|
|
.SH "QBitVal QBitArray::operator[] ( int index )"
|
|
Implements the [] operator for bit arrays.
|
|
.PP
|
|
The returned QBitVal is a context object. It makes it possible to get and set a single bit value by its \fIindex\fR position.
|
|
.PP
|
|
Example:
|
|
.PP
|
|
.nf
|
|
.br
|
|
QBitArray a( 3 );
|
|
.br
|
|
a[0] = 0;
|
|
.br
|
|
a[1] = 1;
|
|
.br
|
|
a[2] = a[0] ^ a[1];
|
|
.br
|
|
.fi
|
|
.PP
|
|
The functions testBit(), setBit() and clearBit() are faster.
|
|
.PP
|
|
See also at().
|
|
.SH "bool QBitArray::operator[] ( int index ) const"
|
|
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
|
|
.PP
|
|
Implements the [] operator for constant bit arrays.
|
|
.SH "QBitArray & QBitArray::operator^= ( const QBitArray & a )"
|
|
Performs the XOR operation between all bits in this bit array and \fIa\fR. Returns a reference to this bit array.
|
|
.PP
|
|
The result has the length of the longest of the two bit arrays, with any missing bits (i.e. if one array is shorter than the other), taken to be 0.
|
|
.PP
|
|
.nf
|
|
.br
|
|
QBitArray a( 3 ), b( 2 );
|
|
.br
|
|
a[0] = 1; a[1] = 0; a[2] = 1; // a = [1 0 1]
|
|
.br
|
|
b[0] = 1; b[1] = 0; // b = [1 0]
|
|
.br
|
|
a ^= b; // a = [0 0 1]
|
|
.br
|
|
.fi
|
|
.PP
|
|
See also operator&=(), operator|=(), and operator~().
|
|
.SH "QBitArray & QBitArray::operator|= ( const QBitArray & a )"
|
|
Performs the OR operation between all bits in this bit array and \fIa\fR. Returns a reference to this bit array.
|
|
.PP
|
|
The result has the length of the longest of the two bit arrays, with any missing bits (i.e. if one array is shorter than the other), taken to be 0.
|
|
.PP
|
|
.nf
|
|
.br
|
|
QBitArray a( 3 ), b( 2 );
|
|
.br
|
|
a[0] = 1; a[1] = 0; a[2] = 1; // a = [1 0 1]
|
|
.br
|
|
b[0] = 1; b[1] = 0; // b = [1 0]
|
|
.br
|
|
a |= b; // a = [1 0 1]
|
|
.br
|
|
.fi
|
|
.PP
|
|
See also operator&=(), operator^=(), and operator~().
|
|
.SH "QBitArray QBitArray::operator~ () const"
|
|
Returns a bit array that contains the inverted bits of this bit array.
|
|
.PP
|
|
Example:
|
|
.PP
|
|
.nf
|
|
.br
|
|
QBitArray a( 3 ), b;
|
|
.br
|
|
a[0] = 1; a[1] = 0; a[2] = 1; // a = [1 0 1]
|
|
.br
|
|
b = ~a; // b = [0 1 0]
|
|
.br
|
|
.fi
|
|
.SH "bool QBitArray::resize ( uint size )"
|
|
Resizes the bit array to \fIsize\fR bits and returns TRUE if the bit array could be resized; otherwise returns FALSE. The array becomes a null array if \fIsize\fR == 0.
|
|
.PP
|
|
If the array is expanded, the new bits are set to 0.
|
|
.PP
|
|
See also size().
|
|
.SH "void QBitArray::setBit ( uint index, bool value )"
|
|
Sets the bit at position \fIindex\fR to \fIvalue\fR.
|
|
.PP
|
|
Equivalent to:
|
|
.PP
|
|
.nf
|
|
.br
|
|
if ( value )
|
|
.br
|
|
setBit( index );
|
|
.br
|
|
else
|
|
.br
|
|
clearBit( index );
|
|
.br
|
|
.fi
|
|
.PP
|
|
See also clearBit() and toggleBit().
|
|
.SH "void QBitArray::setBit ( uint index )"
|
|
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
|
|
.PP
|
|
Sets the bit at position \fIindex\fR to 1.
|
|
.PP
|
|
See also clearBit() and toggleBit().
|
|
.SH "uint QBitArray::size () const"
|
|
Returns the bit array's size (number of bits).
|
|
.PP
|
|
See also resize().
|
|
.SH "bool QBitArray::testBit ( uint index ) const"
|
|
Returns TRUE if the bit at position \fIindex\fR is set, i.e. is 1; otherwise returns FALSE.
|
|
.PP
|
|
See also setBit() and clearBit().
|
|
.SH "bool QBitArray::toggleBit ( uint index )"
|
|
Toggles the bit at position \fIindex\fR.
|
|
.PP
|
|
If the previous value was 0, the new value will be 1. If the previous value was 1, the new value will be 0.
|
|
.PP
|
|
See also setBit() and clearBit().
|
|
.SH RELATED FUNCTION DOCUMENTATION
|
|
.SH "QBitArray operator& ( const QBitArray & a1, const QBitArray & a2 )"
|
|
Returns the AND result between the bit arrays \fIa1\fR and \fIa2\fR.
|
|
.PP
|
|
The result has the length of the longest of the two bit arrays, with any missing bits (i.e. if one array is shorter than the other), taken to be 0.
|
|
.PP
|
|
See also QBitArray::operator&=().
|
|
.SH "QDataStream & operator<< ( QDataStream & s, const QBitArray & a )"
|
|
Writes bit array \fIa\fR to stream \fIs\fR.
|
|
.PP
|
|
See also Format of the QDataStream operators.
|
|
.SH "QDataStream & operator>> ( QDataStream & s, QBitArray & a )"
|
|
Reads a bit array into \fIa\fR from stream \fIs\fR.
|
|
.PP
|
|
See also Format of the QDataStream operators.
|
|
.SH "QBitArray operator^ ( const QBitArray & a1, const QBitArray & a2 )"
|
|
Returns the XOR result between the bit arrays \fIa1\fR and \fIa2\fR.
|
|
.PP
|
|
The result has the length of the longest of the two bit arrays, with any missing bits (i.e. if one array is shorter than the other), taken to be 0.
|
|
.PP
|
|
See also QBitArray::operator^().
|
|
.SH "QBitArray operator| ( const QBitArray & a1, const QBitArray & a2 )"
|
|
Returns the OR result between the bit arrays \fIa1\fR and \fIa2\fR.
|
|
.PP
|
|
The result has the length of the longest of the two bit arrays, with any missing bits (i.e. if one array is shorter than the other), taken to be 0.
|
|
.PP
|
|
See also QBitArray::operator|=().
|
|
|
|
.SH "SEE ALSO"
|
|
.BR http://doc.trolltech.com/ntqbitarray.html
|
|
.BR http://www.trolltech.com/faq/tech.html
|
|
.SH COPYRIGHT
|
|
Copyright 1992-2007 Trolltech ASA, http://www.trolltech.com. See the
|
|
license file included in the distribution for a complete license
|
|
statement.
|
|
.SH AUTHOR
|
|
Generated automatically from the source code.
|
|
.SH BUGS
|
|
If you find a bug in Qt, please report it as described in
|
|
.BR http://doc.trolltech.com/bughowto.html .
|
|
Good bug reports help us to help you. Thank you.
|
|
.P
|
|
The definitive Qt documentation is provided in HTML format; it is
|
|
located at $QTDIR/doc/html and can be read using Qt Assistant or with
|
|
a web browser. This man page is provided as a convenience for those
|
|
users who prefer man pages, although this format is not officially
|
|
supported by Trolltech.
|
|
.P
|
|
If you find errors in this manual page, please report them to
|
|
.BR qt-bugs@trolltech.com .
|
|
Please include the name of the manual page (qbitarray.3qt) and the Qt
|
|
version (3.3.8).
|