IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Viadeo Twitter Facebook Share on Google+   
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QBitArray

La classe QBitArray fournit un tableau de bits. Plus d'informations...

#include <QBitArray>

Voir la position dans l'arbre des classes.

Note : toutes les fonctions de cette classe sont r�entrantes.

Description d�taill�e

La classe QBitArray fournit un tableau de bits

Un QBitArray est un tableau donnant l'acc�s aux bits individuellement et qui fournit les op�rateurs (ET, OU, XOR et NOT) fonctionnant sur l'ensemble du tableau de bits. Le tableau utilise le partage implicite (copie � l'�criture) afin de r�duire la charge en m�moire et d'�viter les copies inutiles.

Le code suivant construit un QBitArray contenant 200 bits initialis�s � false (0) :

 QBitArray ba(200);

Pour initialiser les bits � true, passez true comme second argument au constructeur ou appelez fill() plus tard.

Le QBitArray utilise un index d�marrant � 0, tout comme les tableaux C++. Pour acc�der � un bit � une position particuli�re, vous pouvez utiliser l'op�rateur []. Sur les tableaux de bits non constants, l'op�rateur[]() retourne une r�f�rence � un bit qui peut �tre utilis� comme partie gauche d'une affectation. Par exemple :

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

Pour des raisons techniques, il est plus efficace d'utiliser les fonctions testBit() et setBit() pour acc�der aux bits dans le tableau que l'op�rateur[](). Par exemple :

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

Le QBitArray g�re & (ET), | (OU), ^ (XOR), ~ (NOT), ainsi que &=, |= et ^=. Ces op�rateurs fonctionnent de la m�me mani�re que les op�rateurs logiques du C++ de m�me nom. Par exemple :

 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 ]

Pour des raisons historiques, le QBitArray diff�rencie un tableau de bits nul d'un tableau vide. Un tableau de bits nul est un tableau de bits initialis� avec le constructeur par d�faut. Un tableau de bits vide correspond � n'importe quel tableau de bits ayant une taille de 0. Un tableau de bits nul est toujours vide mais un tableau vide n'est pas toujours nul :

 QBitArray().isNull();           // retourne vrai
 QBitArray().isEmpty();          // retourne vrai
 
 QBitArray(0).isNull();          // retourne faux
 QBitArray(0).isEmpty();         // retourne vrai
 
 QBitArray(3).isNull();          // retourne faux
 QBitArray(3).isEmpty();         // retourne faux

Toutes les fonctions sauf isNull() traitent les tableaux de bits nuls de la m�me fa�on que les tableaux de bits vides ; par exemple, QBitArray() est �gal � QBitArray(0). Nous recommandons de toujours utiliser la fonction isEmpty() et d'�viter la fonction isNull().

Voir aussi QByteArray et QVector.

Fonctions membres

QBitArray::QBitArray ()

Construit un tableau de bits vide.

Voir aussi isEmpty().

QBitArray::QBitArray ( int size, bool value = false )

Construit un tableau de bits contenant size bits. Les bits sont initialis�s avec la valeur value, qui, par d�faut est false (0).

QBitArray::QBitArray ( const QBitArray & other )

Construit une copie de other.

Cette op�ration s'ex�cute en temps constant, car QBitArray est partag� implicitement. Cela signifie que le retour d'un QBitArray par une fonction est tr�s rapide. Si l'instance partag�e est modifi�e, elle va �tre copi�e (copie � l'�criture) et ceci prendra un temps lin�aire.

Voir aussi operator=().

bool QBitArray::at ( int i ) const

Retourne la valeur du bit � la position i.

i doit �tre appel� avec un index valide pour le tableau de bits (c'est-�-dire 0 <= i < size()).

Voir aussi operator[]().

void QBitArray::clear ()

Efface le contenu du tableau de bits et le vide.

Voir aussi resize() et isEmpty().

void QBitArray::clearBit ( int i )

D�finit le bit � la position i � 0.

i doit �tre appel� avec un index valide pour le tableau de bits (c'est-�-dire 0 <= i < size()).

Voir aussi setBit() et toggleBit().

int QBitArray::count () const

Identique � size().

int QBitArray::count ( bool on ) const

Si on est true, cette fonction retourne le nombre de bits � 1 stock�s dans le tableau; sinon retourne le nombre de bits � 0.

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

D�finit tous les bits du tableau de bits � la valeur value, retournant true en cas de succ�s ; sinon, retourne false. Si size est diff�rent de -1 (la valeur par d�faut), le tableau de bits est auparavant redimensionn� � la taille size.

Exemple:

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

Voir aussi resize().

void QBitArray::fill ( bool value, int begin, int end )

Il s'agit d'une fonction surcharg�e.

D�finit les bits entre la position de d�but begin jusqu'� la position de fin end (exclue) � la valeur value.

begin et end doivent �tre des index valides dans le tableau de bits (c'est-�-dire 0 <= begin <= size() et 0 <= end <= size()).

bool QBitArray::isEmpty () const

Retourne true si ce tableau de bits est de taille 0 ; sinon retourne false.

Voir aussi size().

bool QBitArray::isNull () const

Retourne true si ce tableau de bits est nul ; sinon, retourne false.

Exemple:

 QBitArray().isNull();           // retourne vrai
 QBitArray(0).isNull();          // retourne faux
 QBitArray(3).isNull();          // retourne faux

Historiquement, Qt fait la diff�rence entre les tableaux de bits nuls et les tableaux de bits vides. La plupart des applications veulent uniquement savoir si le tableau de bits contient des donn�es ou non, ce qui peut �tre d�termin� en utilisant la fonction isEmpty().

Voir aussi isEmpty().

void QBitArray::resize ( int size )

Redimensionne le tableau de bits � la taille size.

Si la taille size est plus grande que la taille courante, le tableau de bits est �tendu � la taille size avec les bits suppl�mentaires ajout�s � la fin. Les nouveaux bits sont initialis�s � false (0).

Si la taille size est inf�rieure � la taille actuelle, les bits de fin sont retir�s.

Voir aussi size().

void QBitArray::setBit ( int i )

D�finit le bit de la position i � 1.

i doit �tre un index valide dans le tableau de bits (c'est-�-dire 0 <= i < size()).

Voir aussi clearBit() et toggleBit().

void QBitArray::setBit ( int i, bool value )

Il s'agit d'une fonction surcharg�e.

D�finit le bit � la position i � la valeur value.

int QBitArray::size () const

Retourne le nombre de bits stock�s dans le tableau de bits.

Voir aussi resize().

bool QBitArray::testBit ( int i ) const

Retourne true si le bit � la position i est 1 ; sinon, retourne false.

i doit �tre un index valide dans le tableau de bits (c'est-�-dire 0 <= i < size()).

Voir aussi setBit() et clearBit().

bool QBitArray::toggleBit ( int i )

Inverse la valeur du bit � la position i, retournant l'ancienne valeur de ce bit, soit true s'il �tait d�fini et false sinon.

Si la valeur pr�c�dente �tait 0, la nouvelle valeur sera 1. Si la valeur pr�c�dente �tait 1, la nouvelle valeur sera 0.

i doit �tre un index valide dans le tableau de bits (c'est-�-dire 0 <= i < size()).

Voir aussi setBit() et clearBit().

void QBitArray::truncate ( int pos )

Tronque le tableau de bits � la position pos.

Si pos d�passe la fin du tableau, rien ne se passe.

Voir aussi resize().

bool QBitArray::operator!= ( const QBitArray & other ) const

Retourne true si other est diff�rent de ce tableau de bits ; sinon retourne false.

Voir aussi operator==().

QBitArray & QBitArray::operator&= ( const QBitArray & other )

Effectue une op�ration logique ET sur tous les bits entre ce tableau et other. Affecte le r�sultat � ce tableau et retourne une r�f�rence sur celui-ci.

Le r�sultat est de la longueur du plus grand tableau, avec tous les bits manquants (si un tableau est plus petit que l'autre) � 0.

Exemple :

 QBitArray a(3);
 QBitArray b(2);
 a[0] = 1; a[1] = 0; a[2] = 1;   // a: [ 1, 0, 1 ]
 b[0] = 1; b[1] = 0;             // b: [ 1, 1 ]
 a &= b;                         // a: [ 1, 0, 0 ]

Voir aussi operator&(), operator|=(), operator^=() et operator~().

QBitArray & QBitArray::operator= ( const QBitArray & other )

Affecte other � ce tableau de bits et retourne une r�f�rence sur ce tableau.

bool QBitArray::operator== ( const QBitArray & other ) const

Retourne true si other est �gal � ce tableau de bits ; sinon retourne false.

Voir aussi operator!=().

QBitRef QBitArray::operator[] ( int i )

Retourne le bit � la positon i sous forme d'une r�f�rence modifiable.

i doit �tre un index valide dans le tableau de bits (c'est-�-dire 0 <= i < size()).

Exemple :

 QBitArray a(3);
 a[0] = false;
 a[1] = true;
 a[2] = a[0] ^ a[1];

La valeur retourn�e est de type QBitRef, une classe d'aide pour QBitArray. Lorsque vous recevez un objet de type QBitRef, vous pouvez lui affecter une valeur et l'affectation sera appliqu�e au bit du QBitArray � partir duquel vous avez obtenu la r�f�rence.

Les fonctions testBit(), setBit() et clearBit() sont l�g�rement plus rapides.

Voir aussi at(), testBit(), setBit() et clearBit().

bool QBitArray::operator[] ( int i ) const

Il s'agit d'une fonction surcharg�e.

QBitRef QBitArray::operator[] ( uint i )

Il s'agit d'une fonction surcharg�e.

bool QBitArray::operator[] ( uint i ) const

Il s'agit d'une fonction surcharg�e.

QBitArray & QBitArray::operator^= ( const QBitArray & other )

Effectue une op�ration logique XOR entre tous les bits de ce tableau et other. Affecte le r�sultat � ce tableau et retourne une r�f�rence sur celui-ci.

Le r�sultat a la longueur du plus long des deux tableaux. Les bits manquants (si un tableau est plus petit que l'autre) seront mis � 0.

Exemple:

 QBitArray a(3);
 QBitArray b(2);
 a[0] = 1; a[1] = 0; a[2] = 1;   // a: [ 1, 0, 1 ]
 b[0] = 1; b[1] = 0;             // b: [ 1, 1 ]
 a ^= b;                         // a: [ 0, 1, 1 ]

Voir aussi operator^(), operator&=(), operator|=() et operator~().

QBitArray & QBitArray::operator|= ( const QBitArray & other )

Effectue une op�ration logique OU entre tous les bits de ce tableau et other. Affecte le r�sultat � ce tableau de bits et retourne une r�f�rence sur celui-ci.

Le r�sultat a la longueur du plus long des deux tableaux. Les bits manquants (si un tableau est plus petit que l'autre) seront mis � 0.

Exemple:

 QBitArray a(3);
 QBitArray b(2);
 a[0] = 1; a[1] = 0; a[2] = 1;   // a: [ 1, 0, 1 ]
 b[0] = 1; b[1] = 0;             // b: [ 1, 1 ]
 a |= b;                         // a: [ 1, 1, 1 ]

Voir aussi operator|(), operator&=(), operator^=() et operator~().

QBitArray QBitArray::operator~ () const

Retourne un tableau de bits qui contient le compl�ment des bits de ce tableau.

Exemple:

 QBitArray a(3);
 QBitArray b;
 a[0] = 1; a[1] = 0; a[2] = 1;   // a: [ 1, 0, 1 ]
 b = ~a;                         // b: [ 0, 1, 0 ]

Voir aussi operator&(), operator|() et operator^().

En relation mais non membres de la classe

QBitArray operator& ( const QBitArray & a1, const QBitArray & a2 )

Retourne un tableau de bits qui est le r�sultat de l'op�ration logique ET entre a1 et a2.

Le r�sultat a la longueur du plus long des deux tableaux. Les bits manquants (si un tableau est plus petit que l'autre) seront mis � 0.

Exemple:

 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] = 0;             // b: [ 1, 1 ]
 c = a & b;                      // c: [ 1, 0, 0 ]

Voir aussi QBitArray::operator&=(), operator|() et operator^().

QDataStream & operator<< ( QDataStream & out, const QBitArray & ba )

�crit le tableau de bits ba sur le flux out.

Voir aussi Format des op�rateurs QDataStream.

QDataStream & operator>> ( QDataStream & in, QBitArray & ba )

Lit le tableau de bits ba � partir du flux in.

Voir aussi Format des op�rateurs QDataStream.

QBitArray operator^ ( const QBitArray & a1, const QBitArray & a2 )

Retourne le tableau de bits r�sultat de l'op�ration logique XOR entre a1 et a2.

Le r�sultat a la longueur du plus long des deux tableaux. Les bits manquants (si un tableau est plus petit que l'autre) seront mis � 0.

Exemple:

 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] = 0;             // b: [ 1, 1 ]
 c = a ^ b;                      // c: [ 0, 1, 1 ]

Voir aussi QBitArray::operator^=(), operator&() et operator|().

QBitArray operator| ( const QBitArray & a1, const QBitArray & a2 )

Retourne le tableau de bits r�sultat de l'op�ration logique OU entre a1 et a2.

Le r�sultat a la longueur du plus long des deux tableaux. Les bits manquants (si un tableau est plus petit que l'autre) seront mis � 0.

Exemple:

 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] = 0;             // b: [ 1, 1 ]
 c = a | b;                      // c: [ 1, 1, 1 ]

Voir aussi QBitArray::operator|=(), operator&() et operator^().

Remerciements

Merci � Alexandre Laurent pour la traduction, ainsi qu'� Ilya Diallo et Claude Leloup pour la relecture !

Cette page est une traduction d'une page de la documentation de Qt, �crite par Nokia Corporation and/or its subsidiary(-ies). Les �ventuels probl�mes r�sultant d'une mauvaise traduction ne sont pas imputables � Nokia. Qt 4.7
Copyright © 2025 Developpez LLC. Tous droits r�serv�s Developpez LLC. Aucune reproduction, m�me partielle, ne peut �tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'� 3 ans de prison et jusqu'� 300 000 E de dommages et int�r�ts. Cette page est d�pos�e � la SACD.
Vous avez d�nich� une erreur ? Un bug ? Une redirection cass�e ? Ou tout autre probl�me, quel qu'il soit ? Ou bien vous d�sirez participer � ce projet de traduction ? N'h�sitez pas � nous contacter ou par MP !