QBitArray

「QBitArray」の編集履歴(バックアップ)一覧はこちら

QBitArray」(2014/08/19 (火) 12:13:32) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

**概要 QBitArray クラスはbit配列を提供します。 このクラスはimplicit sharingを利用しています。 **メソッド ***コンストラクタ QBitArray::QBitArray() 空の QBitArray オブジェクトを生成します。 QBitArray::QBitArray(int size, bool value = false) 要素数 size の QBitArray オブジェクトを生成します。 各要素は value の値で初期化されます。 ***コピーコンストラクタ QBitArray::QBitArray(const QBitArray & other) implicit sharingを利用しているため、中身は同じになります。 ***ムーブコンストラクター QBitArray::QBitArray(QBitArray && other) ***値を取得する bool QBitArray::at(int i) const インデックス i のビットの値を返します。 i はビット配列における有効なインデックスである必要があります。( 0 <= i < size() ) bool QBitArray::testBit(int i) const インデックス i の値がtrueの場合はtrue、そうでない場合はfalseを返します。 i はビット配列における有効なインデックスである必要があります。( 0 <= i < size() ) ***値を変更する void QBitArray::setBit(int i) インデックス i にtrueを設定します。 void QBitArray::setBit(int i, bool value) インデックス i に value の値を設定します。 bool QBitArray::toggleBit(int i) インデックス i の値を反転させ、以前の値を返します。 i はビット配列における有効なインデックスである必要があります。( 0 <= i < size() ) #highlight(linenumber,c){{ QBitArray ba(2); ba.setBit(1); //ab = { 0, 1 } qDebug() << ba.toggleBit(0); //false qDebug() << ba.toggleBit(1); //true //ab = { 1, 0 } }} void QBitArray::clear() ビット配列の中身をクリアし、空にします。 void QBitArray::clearBit(int i) インデックス i のビットを0にします。 i はビット配列における有効なインデックスである必要があります。( 0 <= i < size() ) ***添字アクセス QBitRef QBitArray::operator[](int i) QBitRef QBitArray::operator[](uint i) インデックス i の位置にある値を取得または設定できます。 i はビット配列における有効なインデックスである必要があります。( 0 <= i < size() ) bool QBitArray::operator[](int i) const bool QBitArray::operator[](uint i) const インデックス i の位置にある値を取得できます。 ***ビット配列の情報を取得 int QBitArray::count(bool on) const on = true の場合は、ビット配列中のfalseの数を返します。 on = false の場合は、ビット配列中のtrueの数を返します。 bool QBitArray::isEmpty() const ビット配列の要素数が0の場合はtrue、そうでない場合はfalseを返します。 #highlight(linenumber,c){{ QBitArray().isEmpty(); // returns true QBitArray(0).isEmpty(); // returns true QBitArray(3).isEmpty(); // returns false }} bool QBitArray::isNull() const QBitArray オブジェクトが null の場合はtrue、そうでない場合はfalseを返します。 #highlight(linenumber,c){{ QBitArray().isNull(); // returns true QBitArray(0).isNull(); // returns false QBitArray(3).isNull(); // returns false }} ***ビット配列の大きさを取得・変更する int QBitArray::count() const int QBitArray::size() const ビット配列の要素数を返します。 void QBitArray::resize(int size) ビット配列の大きさを変更します。 size が現在の大きさより大きい場合、末尾に要素を追加していき、falseで初期化します。 size が現在の大きさより小さい場合、末尾から要素を削除していきます。 #highlight(linenumber,c){{ QBitArray ba(10); ba.resize(20); qDebug() << ba.size(); //20 インデックスは0~19 ba.resize(5); qDebug() << ba.size(); //5 インデックスは0~4 }} void QBitArray::truncate(int pos) インデックス pos にビット配列を切り縮めます。 pos がビット配列の末尾を超えている場合は何もしません。 #highlight(linenumber,c){{ QBitArray ba(10); qDebug() << ba.size(); //10 インデックスは0~9 ba.truncate(5); qDebug() << ba.size(); //5 インデックスは0~4 }} ***ビット配列の要素を変更する bool QBitArray::fill(bool value, int size = -1) ビット配列のすべての要素を value の値に設定します。 成功場合はtrue、そうでない場合はfalseを返します。 size が-1(デフォルト値)以外に設定されている場合、ビット配列は size へ事前にリサイズされます。 #highlight(linenumber,c){{ QBitArray ba(8); ba.fill(true); //ba: [ 1, 1, 1, 1, 1, 1, 1, 1 ] ba.fill(false, 2); //ba: [ 0, 0 ] }} void QBitArray::fill(bool value, int begin, int end) インデックス begin からインデックス end までを value の値に設定します。 begin 及び end はビット配列における有効なインデックスである必要があります。 ( 0 <= begin <= size() and 0 <= end <= size() ) #highlight(linenumber,c){{ QBitArray ba(8); ba.fill(true,0,5); //ba: [ 1, 1, 1, 1, 1, 0, 0, 0 ] }} ***その他 void QBitArray::swap(QBitArray & other) 他のQBitArray オブジェクトと中身を交換します。 ***演算子 bool QBitArray::operator!=(const QBitArray & other) const other と異なるビット配列の場合はtrue、そうでない場合はfalseを返します。 bool QBitArray::operator==(const QBitArray & other) const other と同じビット配列の場合はtrue、そうでない場合はfalseを返します。 QBitArray & QBitArray::operator=(const QBitArray & other) other を本オブジェクトに代入します。 QBitArray & QBitArray::operator=(QBitArray && other) ***ビット演算子 QBitArray & QBitArray::operator&=(const QBitArray & other) other とのAND演算を行い、その結果を QBitArray オブジェクトで返します。 #highlight(linenumber,c){{ QBitArray a(3); QBitArray b(2); a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ] b[0] = 1; b[1] = 1; // b: [ 1, 1 ] a &= b; // a: [ 1, 0, 0 ] }} QBitArray & QBitArray::operator|=(const QBitArray & other) other とのOR演算を行い、その結果を QBitArray オブジェクトで返します。 #highlight(linenumber,c){{ QBitArray a(3); QBitArray b(2); a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ] b[0] = 1; b[1] = 1; // b: [ 1, 1 ] a |= b; // a: [ 1, 1, 1 ] }} QBitArray & QBitArray::operator^=(const QBitArray & other) other とのXOR演算を行い、その結果を QBitArray オブジェクトで返します。 #highlight(linenumber,c){{ QBitArray a(3); QBitArray b(2); a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ] b[0] = 1; b[1] = 1; // b: [ 1, 1 ] a ^= b; // a: [ 0, 1, 1 ] }} QBitArray QBitArray::operator~() const NOT演算を行い、その結果を QBitArray オブジェクトで返します。 #highlight(linenumber,c){{ QBitArray a(3); QBitArray b; a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ] b = ~a; // b: [ 0, 1, 0 ] }} ***グローバルなビット演算子(QBitArray クラスのメンバではない) QBitArray operator&(const QBitArray & a1, const QBitArray & a2) QBitArrayオブジェクト a1 及び a2 でAND演算を行い、その結果を QBitArray オブジェクトで返します。 #highlight(linenumber,c){{ QBitArray a(3); QBitArray b(2); QBitArray c; a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ] b[0] = 1; b[1] = 1; // b: [ 1, 1 ] c = a & b; // c: [ 1, 0, 0 ] }} QBitArray operator|(const QBitArray & a1, const QBitArray & a2) QBitArrayオブジェクト a1 及び a2 でOR演算を行い、その結果を QBitArray オブジェクトで返します。 #highlight(linenumber,c){{ QBitArray a(3); QBitArray b(2); QBitArray c; a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ] b[0] = 1; b[1] = 1; // b: [ 1, 1 ] c = a | b; // c: [ 1, 1, 1 ] }} QBitArray operator^(const QBitArray & a1, const QBitArray & a2) QBitArrayオブジェクト a1 及び a2 でXOR演算を行い、その結果を QBitArray オブジェクトで返します。 #highlight(linenumber,c){{ QBitArray a(3); QBitArray b(2); QBitArray c; a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ] b[0] = 1; b[1] = 1; // b: [ 1, 1 ] c = a ^ b; // c: [ 0, 1, 1 ] }} ***データストリーム QDataStream & operator<<(QDataStream & out, const QBitArray & ba) QDataStream & operator>>(QDataStream & in, QBitArray & ba)
**概要 QBitArray クラスはビット配列を提供します。 このクラスはimplicit sharingを利用しています。 **メソッド ***コンストラクタ QBitArray::QBitArray() 空の QBitArray オブジェクトを生成します。 QBitArray::QBitArray(int size, bool value = false) 要素数 size の QBitArray オブジェクトを生成します。 各要素は value の値で初期化されます。 ***コピーコンストラクタ QBitArray::QBitArray(const QBitArray & other) implicit sharingを利用しているため、中身は同じになります。 ***ムーブコンストラクター QBitArray::QBitArray(QBitArray && other) ***値を取得する bool QBitArray::at(int i) const インデックス i のビットの値を返します。 i はビット配列における有効なインデックスである必要があります。( 0 <= i < size() ) bool QBitArray::testBit(int i) const インデックス i の値がtrueの場合はtrue、そうでない場合はfalseを返します。 i はビット配列における有効なインデックスである必要があります。( 0 <= i < size() ) ***値を変更する void QBitArray::setBit(int i) インデックス i にtrueを設定します。 void QBitArray::setBit(int i, bool value) インデックス i に value の値を設定します。 bool QBitArray::toggleBit(int i) インデックス i の値を反転させ、以前の値を返します。 i はビット配列における有効なインデックスである必要があります。( 0 <= i < size() ) #highlight(linenumber,c){{ QBitArray ba(2); ba.setBit(1); //ab = { 0, 1 } qDebug() << ba.toggleBit(0); //false qDebug() << ba.toggleBit(1); //true //ab = { 1, 0 } }} void QBitArray::clear() ビット配列の中身をクリアし、空にします。 void QBitArray::clearBit(int i) インデックス i のビットを0にします。 i はビット配列における有効なインデックスである必要があります。( 0 <= i < size() ) ***添字アクセス QBitRef QBitArray::operator[](int i) QBitRef QBitArray::operator[](uint i) インデックス i の位置にある値を取得または設定できます。 i はビット配列における有効なインデックスである必要があります。( 0 <= i < size() ) bool QBitArray::operator[](int i) const bool QBitArray::operator[](uint i) const インデックス i の位置にある値を取得できます。 ***ビット配列の情報を取得 int QBitArray::count(bool on) const on = true の場合は、ビット配列中のfalseの数を返します。 on = false の場合は、ビット配列中のtrueの数を返します。 bool QBitArray::isEmpty() const ビット配列の要素数が0の場合はtrue、そうでない場合はfalseを返します。 #highlight(linenumber,c){{ QBitArray().isEmpty(); // returns true QBitArray(0).isEmpty(); // returns true QBitArray(3).isEmpty(); // returns false }} bool QBitArray::isNull() const QBitArray オブジェクトが null の場合はtrue、そうでない場合はfalseを返します。 #highlight(linenumber,c){{ QBitArray().isNull(); // returns true QBitArray(0).isNull(); // returns false QBitArray(3).isNull(); // returns false }} ***ビット配列の大きさを取得・変更する int QBitArray::count() const int QBitArray::size() const ビット配列の要素数を返します。 void QBitArray::resize(int size) ビット配列の大きさを変更します。 size が現在の大きさより大きい場合、末尾に要素を追加していき、falseで初期化します。 size が現在の大きさより小さい場合、末尾から要素を削除していきます。 #highlight(linenumber,c){{ QBitArray ba(10); ba.resize(20); qDebug() << ba.size(); //20 インデックスは0~19 ba.resize(5); qDebug() << ba.size(); //5 インデックスは0~4 }} void QBitArray::truncate(int pos) インデックス pos にビット配列を切り縮めます。 pos がビット配列の末尾を超えている場合は何もしません。 #highlight(linenumber,c){{ QBitArray ba(10); qDebug() << ba.size(); //10 インデックスは0~9 ba.truncate(5); qDebug() << ba.size(); //5 インデックスは0~4 }} ***ビット配列の要素を変更する bool QBitArray::fill(bool value, int size = -1) ビット配列のすべての要素を value の値に設定します。 成功場合はtrue、そうでない場合はfalseを返します。 size が-1(デフォルト値)以外に設定されている場合、ビット配列は size へ事前にリサイズされます。 #highlight(linenumber,c){{ QBitArray ba(8); ba.fill(true); //ba: [ 1, 1, 1, 1, 1, 1, 1, 1 ] ba.fill(false, 2); //ba: [ 0, 0 ] }} void QBitArray::fill(bool value, int begin, int end) インデックス begin からインデックス end までを value の値に設定します。 begin 及び end はビット配列における有効なインデックスである必要があります。 ( 0 <= begin <= size() and 0 <= end <= size() ) #highlight(linenumber,c){{ QBitArray ba(8); ba.fill(true,0,5); //ba: [ 1, 1, 1, 1, 1, 0, 0, 0 ] }} ***その他 void QBitArray::swap(QBitArray & other) 他のQBitArray オブジェクトと中身を交換します。 ***演算子 bool QBitArray::operator!=(const QBitArray & other) const other と異なるビット配列の場合はtrue、そうでない場合はfalseを返します。 bool QBitArray::operator==(const QBitArray & other) const other と同じビット配列の場合はtrue、そうでない場合はfalseを返します。 QBitArray & QBitArray::operator=(const QBitArray & other) other を本オブジェクトに代入します。 QBitArray & QBitArray::operator=(QBitArray && other) ***ビット演算子 QBitArray & QBitArray::operator&=(const QBitArray & other) other とのAND演算を行い、その結果を QBitArray オブジェクトで返します。 #highlight(linenumber,c){{ QBitArray a(3); QBitArray b(2); a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ] b[0] = 1; b[1] = 1; // b: [ 1, 1 ] a &= b; // a: [ 1, 0, 0 ] }} QBitArray & QBitArray::operator|=(const QBitArray & other) other とのOR演算を行い、その結果を QBitArray オブジェクトで返します。 #highlight(linenumber,c){{ QBitArray a(3); QBitArray b(2); a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ] b[0] = 1; b[1] = 1; // b: [ 1, 1 ] a |= b; // a: [ 1, 1, 1 ] }} QBitArray & QBitArray::operator^=(const QBitArray & other) other とのXOR演算を行い、その結果を QBitArray オブジェクトで返します。 #highlight(linenumber,c){{ QBitArray a(3); QBitArray b(2); a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ] b[0] = 1; b[1] = 1; // b: [ 1, 1 ] a ^= b; // a: [ 0, 1, 1 ] }} QBitArray QBitArray::operator~() const NOT演算を行い、その結果を QBitArray オブジェクトで返します。 #highlight(linenumber,c){{ QBitArray a(3); QBitArray b; a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ] b = ~a; // b: [ 0, 1, 0 ] }} ***グローバルなビット演算子(QBitArray クラスのメンバではない) QBitArray operator&(const QBitArray & a1, const QBitArray & a2) QBitArrayオブジェクト a1 及び a2 でAND演算を行い、その結果を QBitArray オブジェクトで返します。 #highlight(linenumber,c){{ QBitArray a(3); QBitArray b(2); QBitArray c; a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ] b[0] = 1; b[1] = 1; // b: [ 1, 1 ] c = a & b; // c: [ 1, 0, 0 ] }} QBitArray operator|(const QBitArray & a1, const QBitArray & a2) QBitArrayオブジェクト a1 及び a2 でOR演算を行い、その結果を QBitArray オブジェクトで返します。 #highlight(linenumber,c){{ QBitArray a(3); QBitArray b(2); QBitArray c; a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ] b[0] = 1; b[1] = 1; // b: [ 1, 1 ] c = a | b; // c: [ 1, 1, 1 ] }} QBitArray operator^(const QBitArray & a1, const QBitArray & a2) QBitArrayオブジェクト a1 及び a2 でXOR演算を行い、その結果を QBitArray オブジェクトで返します。 #highlight(linenumber,c){{ QBitArray a(3); QBitArray b(2); QBitArray c; a[0] = 1; a[1] = 0; a[2] = 1; // a: [ 1, 0, 1 ] b[0] = 1; b[1] = 1; // b: [ 1, 1 ] c = a ^ b; // c: [ 0, 1, 1 ] }} ***データストリーム QDataStream & operator<<(QDataStream & out, const QBitArray & ba) QDataStream & operator>>(QDataStream & in, QBitArray & ba)

表示オプション

横に並べて表示:
変化行の前後のみ表示: