Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QBitArray类提供了一组位。More...
该QBitArray类提供了一组位。
一个QBitArray是一个数组,它可以访问各个位,并提供运营商(AND,OR,XOR和NOT对位的整个数组)的工作。它使用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( ) 。
构造一个空数组位。
See also isEmpty( ) 。
构造一个位阵列包含size位。该位与初始化value,默认为False ( 0 ) 。
构造的副本other。
该操作需要constant time,因为QBitArray is implicitly shared。这使得返回一个QBitArray从非常快的函数。如果共享的实例被改性时,其将被复制(复制写入时) ,而这需要linear time。
See also operator=( ) 。
返回索引位置的位值i。
i必须是位阵列中的一个有效的索引位置(即0 \u003c =i\u003csize())。
See also operator[]( ) 。
清除该位阵列的内容,并使其为空。
See also resize()和isEmpty( ) 。
设置位索引位置i为0。
i必须是位阵列中的一个有效的索引位置(即0 \u003c =i\u003csize())。
See also setBit()和toggleBit( ) 。
同size( ) 。
If on诚然,此函数返回所存储的比特数组中1位的号码,否则返回0位的数量。
设置该位阵列中每一个位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( ) 。
这是一个重载函数。
设置位在索引位置begin达,但不包括end至value。
begin和end必须是位阵列中的一个有效的索引位置(即0 \u003c =begin\u003c =size()和0 \u003c=end\u003c =size())。
返回True如果该位数组的大小为0 ,否则返回False 。
See also size( ) 。
返回True如果该位数组为null ,否则返回False 。
例如:
QBitArray().isNull(); // returns true QBitArray(0).isNull(); // returns false QBitArray(3).isNull(); // returns false
Qt后,由于历史的原因空位阵列和空bit数组之间的区别。对于大多数应用来说,重要的是一个位阵列中是否包含任何数据,这可以通过确定isEmpty( ) 。
See also isEmpty( ) 。
调整大小的位阵列size位。
If size大于该电流的大小,位阵列被扩展以使其size与额外的比特位添加到末尾。新的位被初始化为False ( 0 ) 。
If size小于该电流的大小,比特被从端部除去。
See also size( ) 。
设置位索引位置i为1。
i必须是位阵列中的一个有效的索引位置(即0 \u003c =i\u003csize())。
See also clearBit()和toggleBit( ) 。
这是一个重载函数。
设置位索引位置i至value。
返回所存储的比特阵列中的比特数。
See also resize( ) 。
掉期位阵列other与此位阵列。这个操作是非常快的,而且永远不会。
此功能被引入Qt的4.8 。
返回True ,如果该位索引位置i为1 ,否则返回False 。
i必须是位阵列中的一个有效的索引位置(即0 \u003c =i\u003csize())。
See also setBit()和clearBit( ) 。
反转索引位置的位值i,返回该位为任一真(如果它被设置)或False (如果它是未设置)的前一个值。
如果以前的值为0 ,则新值将是1 。如果以前的值为1 ,新值将为0 。
i必须是位阵列中的一个有效的索引位置(即0 \u003c =i\u003csize())。
See also setBit()和clearBit( ) 。
截断位阵列索引位置pos。
If pos超出了数组的结尾,没有任何反应。
See also resize( ) 。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |