Home · All Classes · Modules  · QSS HELP  · QSS 案例 · VER007 HOME

QBitArray Class Reference
[QtCore module]

该QBitArray类提供了一组位。More...

Methods

Special Methods


Detailed Description

该QBitArray类提供了一组位。

一个QBitArray是一个数组,它可以访问各个位,并提供运营商(ANDORXORNOT对位的整个数组)的工作。它使用implicit sharing(复制上写的),以减少内存使用量,避免不必要的数据复制。

下面的代码创建一个包含200位的QBitArray初始化为False ( 0 ) :

 QBitArray ba(200);

要初始化位为True ,要么通过true作为第二个参数的构造函数,或调用fill( )以后。

QBitArray使用基于0的索引,就像C + +中的数组。要访问该位在特定索引位置,可以使用操作符[] ( ) 。对非const位阵列,操作符[ ] ( )返回一个引用位,可以在赋值的左侧使用。例如:

 QBitArray ba;
 ba.resize(3);
 ba[0] = true;
 ba[1] = false;
 ba[2] = true;

由于技术原因,它是更有效地使用testBit()和setBit( )来访问数组比运营商的位[] ( ) 。例如:

 QBitArray ba(3);
 ba.setBit(0, true);
 ba.setBit(1, false);
 ba.setBit(2, true);

QBitArray支持&AND) ,|OR) ,^XOR) ,~NOT) ,以及&=|=^=。这些运营商在相同的方式相同名称的内置C + +的位运算符的工作。例如:

 QBitArray x(5);
 x.setBit(3, true);
 // x: [ 0, 0, 0, 1, 0 ]

 QBitArray y(5);
 y.setBit(4, true);
 // y: [ 0, 0, 0, 0, 1 ]

 x |= y;
 // x: [ 0, 0, 0, 1, 1 ]

由于历史原因, QBitArray一个空位阵列和一个空的位阵列之间的区别。一null位阵列是使用QBitArray的默认构造函数初始化一个位阵列。一个empty位阵列中的任何位数组大小为0 。空阵位总是空的,但一个空的位阵列不一定空:

 QBitArray().isNull();           // returns true
 QBitArray().isEmpty();          // returns true

 QBitArray(0).isNull();          // returns false
 QBitArray(0).isEmpty();         // returns true

 QBitArray(3).isNull();          // returns false
 QBitArray(3).isEmpty();         // returns false

之外的全部功能isNull( )把空位阵列一样空位阵列,例如,QBitArray()比较等于QBitArray (0)。我们建议您始终使用isEmpty()和避免isNull( ) 。


Method Documentation

QBitArray.__init__ (self)

构造一个空数组位。

See also isEmpty( ) 。

QBitArray.__init__ (self, int size, bool value = False)

构造一个位阵列包含size位。该位与初始化value,默认为False ( 0 ) 。

QBitArray.__init__ (self, QBitArray other)

构造的副本other

该操作需要constant time,因为QBitArray is implicitly shared。这使得返回一个QBitArray从非常快的函数。如果共享的实例被改性时,其将被复制(复制写入时) ,而这需要linear time

See also operator=( ) 。

bool QBitArray.at (self, int i)

返回索引位置的位值i

i必须是位阵列中的一个有效的索引位置(即0 \u003c =i\u003csize())。

See also operator[]( ) 。

QBitArray.clear (self)

清除该位阵列的内容,并使其为空。

See also resize()和isEmpty( ) 。

QBitArray.clearBit (self, int i)

设置位索引位置i为0。

i必须是位阵列中的一个有效的索引位置(即0 \u003c =i\u003csize())。

See also setBit()和toggleBit( ) 。

int QBitArray.count (self)

size( ) 。

int QBitArray.count (self, bool on)

If on诚然,此函数返回所存储的比特数组中1位的号码,否则返回0位的数量。

QBitArray.detach (self)

QBitArray.fill (self, bool val, int first, int last)

设置该位阵列中每一个位value如果成功,则返回True ,否则返回False 。如果size是从-1 (默认值)不同,该位阵列大小调整为size事前。

例如:

 QBitArray ba(8);
 ba.fill(true);
 // ba: [ 1, 1, 1, 1, 1, 1, 1, 1 ]

 ba.fill(false, 2);
 // ba: [ 0, 0 ]

See also resize( ) 。

bool QBitArray.fill (self, bool value, int size = -1)

这是一个重载函数。

设置位在索引位置begin达,但不包括endvalue

beginend必须是位阵列中的一个有效的索引位置(即0 \u003c =begin\u003c =size()和0 \u003c=end\u003c =size())。

bool QBitArray.isDetached (self)

bool QBitArray.isEmpty (self)

返回True如果该位数组的大小为0 ,否则返回False 。

See also size( ) 。

bool QBitArray.isNull (self)

返回True如果该位数组为null ,否则返回False 。

例如:

 QBitArray().isNull();           // returns true
 QBitArray(0).isNull();          // returns false
 QBitArray(3).isNull();          // returns false

Qt后,由于历史的原因空位阵列和空bit数组之间的区别。对于大多数应用来说,重要的是一个位阵列中是否包含任何数据,这可以通过确定isEmpty( ) 。

See also isEmpty( ) 。

QBitArray.resize (self, int size)

调整大小的位阵列size位。

If size大于该电流的大小,位阵列被扩展以使其size与额外的比特位添加到末尾。新的位被初始化为False ( 0 ) 。

If size小于该电流的大小,比特被从端部除去。

See also size( ) 。

QBitArray.setBit (self, int i)

设置位索引位置i为1。

i必须是位阵列中的一个有效的索引位置(即0 \u003c =i\u003csize())。

See also clearBit()和toggleBit( ) 。

QBitArray.setBit (self, int i, bool val)

这是一个重载函数。

设置位索引位置ivalue

int QBitArray.size (self)

返回所存储的比特阵列中的比特数。

See also resize( ) 。

QBitArray.swap (self, QBitArray other)

掉期位阵列other与此位阵列。这个操作是非常快的,而且永远不会。

此功能被引入Qt的4.8 。

bool QBitArray.testBit (self, int i)

返回True ,如果该位索引位置i为1 ,否则返回False 。

i必须是位阵列中的一个有效的索引位置(即0 \u003c =i\u003csize())。

See also setBit()和clearBit( ) 。

bool QBitArray.toggleBit (self, int i)

反转索引位置的位值i,返回该位为任一真(如果它被设置)或False (如果它是未设置)的前一个值。

如果以前的值为0 ,则新值将是1 。如果以前的值为1 ,新值将为0 。

i必须是位阵列中的一个有效的索引位置(即0 \u003c =i\u003csize())。

See also setBit()和clearBit( ) 。

QBitArray.truncate (self, int pos)

截断位阵列索引位置pos

If pos超出了数组的结尾,没有任何反应。

See also resize( ) 。

QBitArray QBitArray.__and__ (self, QBitArray)

bool QBitArray.__eq__ (self, QBitArray a)

bool QBitArray.__getitem__ (self, int i)

int QBitArray.__hash__ (self)

QBitArray QBitArray.__iand__ (self, QBitArray)

QBitArray QBitArray.__invert__ (self)

QBitArray QBitArray.__ior__ (self, QBitArray)

QBitArray QBitArray.__ixor__ (self, QBitArray)

QBitArray.__len__ (self)

bool QBitArray.__ne__ (self, QBitArray a)

QBitArray QBitArray.__or__ (self, QBitArray)

QBitArray QBitArray.__xor__ (self, QBitArray)




PyQt 4.10.3 for X11 Copyright © Riverbank Computing Ltd and Nokia 2012 Qt 4.8.5