QBitArrayLa 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�eLa 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 membresQBitArray::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 ) constRetourne 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 () constIdentique � size(). int QBitArray::count ( bool on ) constSi 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 () constRetourne true si ce tableau de bits est de taille 0 ; sinon retourne false. Voir aussi size(). bool QBitArray::isNull () constRetourne 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 () constRetourne le nombre de bits stock�s dans le tableau de bits. Voir aussi resize(). bool QBitArray::testBit ( int i ) constRetourne 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 ) constRetourne 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 ) constRetourne 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 ) constIl 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 ) constIl 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~ () constRetourne 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 classeQBitArray 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^(). RemerciementsMerci � 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 ! | ||