主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 | ![]() |
QBitArray类提供了一个位数组。 详情请见……
#include <qbitarray.h>
继承了QByteArray。
因为QBitArray是一个QMemArray,它通过一个引用计数使用了明显共享。
QBitArray是一个特殊的字节数组,它可以访问单独的位并且可以在整个位数组上执行为操作(AND、OR、XOR和NOT)。
位可以通过函数setBit()和clearBit()来操作,但是它也可以使用索引[]操作符来测试和设置单独的位。[]操作符比setBit()和clearBit()慢一些,因为在实现单独位分配中需要一些技巧。
实例:
QBitArray a(3); a.setBit( 0 ); a.clearBit( 1 ); a.setBit( 2 ); // a = [1 0 1] QBitArray b(3); b[0] = 1; b[1] = 1; b[2] = 0; // b = [1 1 0] QBitArray c; c = ~a & b; // c = [0 1 0]
当QBitArray被构造时,位没有被初始化。使用fill()可以设置所有的位为0或1。数组可以用resize()来重新定义大小并且用copy()来复制。位可以用setBit()来设置并且用clearBit()来清空。位可以用toggleBit()来切换。一个位的值可以用testBit()和at()来获得。
QBitArray支持&(AND)、|(OR)、^(XOR)和~(NOT)操作符。
也可以参考fill()。
也可以参考operator[]()。
也可以参考detach()。
如果是多重位数组共享公有数据,这个位数组引用计数减一并且得到一个数据的复制。如果只是一个单独的引用将没有任何操作。
也可以参考copy()。
从QMemArray中重新实现的。
如果size为非负数,fill()会重新定义位数组的大小为size。
如果size为非负数并且位数组没有能被重新定义大小,返回假,否则返回真。
也可以参考resize()。
如果两个数组大小不同,对于缺少的位,AND操作将使用0,就像下面的例子所描述的:
QBitArray a( 3 ), b( 2 ); a[0] = 1; a[1] = 0; a[2] = 1; // a = [1 0 1] b[0] = 1; b[1] = 0; // b = [1 0] a &= b; // a = [1 0 0]
也可以参考operator|=()、operator^=()和operator~()。
返回到QBitVal是一个上下文对象。它使得得到和设置index位置的单个位成为可能。
实例:
QBitArray a( 3 ); a[0] = 0; a[1] = 1; a[2] = a[0] ^ a[1];
函数testBit()、setBit()和clearBit()更快一些。
也可以参考at()。
为常量位数组实现了[]操作符。
结果的长度为两个数组中比较长的长度,比较短的数组缺少的位用0。
实例:
QBitArray a( 3 ), b( 2 ); a[0] = 1; a[1] = 0; a[2] = 1; // a = [1 0 1] b[0] = 1; b[1] = 0; // b = [1 0] a ^= b; // a = [0 0 1]
也可以参考operator&=()、operator|=()和operator~()。
结果的长度为两个数组中比较长的长度,比较短的数组缺少的位用0。
实例:
QBitArray a( 3 ), b( 2 ); a[0] = 1; a[1] = 0; a[2] = 1; // a = [1 0 1] b[0] = 1; b[1] = 0; // b = [1 0] a |= b; // a = [1 0 1]
也可以参考operator&=()、operator^=()和operator~()。
实例:
QBitArray a( 3 ), b; a[0] = 1; a[1] = 0; a[2] = 1; // a = [1 0 1] b = ~a; // b = [0 1 0]
如果数组被扩大了,新的位被设置为0。
也可以参考size()。
等同于:
if ( value ) setBit( index ); else clearBit( index );
设置index位置的位(设置它为1)。
也可以参考resize()。
如果以前的值为0,新值就是1。如果以前的指为1,新值就为0。
也可以参考QBitArray::operator&=()。
也可以参考QDataStream操作符的格式。
也可以参考QDataStream操作符的格式。
也可以参考QBitArray::operator^()。
也可以参考QBitArray::operator|=()。
这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。
Copyright © 2002 Trolltech | Trademarks | 译者:Cavendish | Qt 3.0.5版
|