Aracılığıyla paylaş


bitset sınıfı

Bir dizi öğe veya koşul için bayrak tutmanın küçük bir yolunu sağlayan sabit sayıda bit içeren bir dizi depolayan nesne türünü açıklar. sınıfı, bitset bit koleksiyonu içeren ve her bite sabit zamanlı erişim sağlayan bit kümesi türündeki nesneler üzerinde işlemleri destekler.

Sözdizimi

template <size_t N>
class bitset

Parametreler

N
Derleme zamanında bilinmesi gereken türü sıfır olmayan tamsayıya size_t sahip nesnedeki bitset bit sayısını belirtir.

Açıklamalar

Benzer vector<bool> Sınıftan farklı olarak, sınıfın bitset yineleyicileri yoktur ve C++ Standart Kitaplığı kapsayıcısı değildir. Ayrıca, belirtilen şablon parametresi N bitset<N> tarafından belirtilen boyuta uygun olarak derleme zamanında sabitlenmiş belirli bir boyutta olmasından da farklıdırvector<bool>.

Değeri 1 ise bit ayarlanır ve değeri 0 ise sıfırlanır. Bir biti çevirmek veya ters çevirmek, değerini 1'den 0'a veya 0'dan 1'e değiştirmektir. içindeki N bitset bitler 0 N ile - 1 arasında tamsayı değerlerine göre dizinlenir; burada 0 ilk bit konumunu ve N - 1 son bit konumunu dizinler.

Üyeler

Oluşturucular

Veri Akışı Adı Açıklama
bitset sınıfının bitset<N> nesnesini oluşturur ve bitleri sıfıra, belirli bir değere veya dizedeki karakterlerden alınan değerlere başlatır.

Tür tanımları

Veri Akışı Adı Açıklama
element_type Veri türü için eş anlamlı olan ve içindeki öğe bitlerine başvurmak için kullanılabilen bir bitsettürbool.

İşlevler

Veri Akışı Adı Açıklama
all Tüm bitlerin olarak ayarlanıp ayarlanmadığını belirlemek için bu bitset içindeki tüm bitleri test eder true.
any Üye işlevi, dizideki herhangi bir bitin 1 olarak ayarlanıp ayarlanmadığını sınar.
count Üye işlevi, bit dizisinde ayarlanan bit sayısını döndürür.
flip Bir içindeki tüm bitlerin bitset değerini ters çevirir veya belirtilen konumda tek bir biti ters çevirir.
none Nesnede bitset bit 1 olarak ayarlanmamışsa sınar.
reset Bir içindeki tüm bitleri 0'a bitset sıfırlar veya belirli bir konumdaki bir biti 0 olarak sıfırlar.
set Bir bitset içindeki tüm bitleri 1 olarak ayarlar veya belirli bir konumdaki bir biti 1 olarak ayarlar.
size Nesnedeki bitset bit sayısını döndürür.
test içinde belirtilen konumdaki bitset bitin 1 olarak ayarlanıp ayarlanmadığını sınar.
to_string Nesneyi dize bitset gösterimine dönüştürür.
to_ullong içindeki bitset bit değerlerinin toplamını olarak unsigned long longdöndürür.
to_ulong bir bitset nesneyi, başlatmak için unsigned long kullanılırsa içerdiği bit dizisini oluşturacak olan nesnesine bitsetdönüştürür.

Sınıflar

Veri Akışı Adı Açıklama
reference sınıfının yardımcı sınıfı olarak tek tek bitlere erişmek ve işlemek için kullanılan bir bitset içinde yer alan bitlere başvurular sağlayan bir ara sunucu sınıfıbitset.operator[]

İşleçler

Veri Akışı Adı Açıklama
operator!= Belirtilen bitsetile bir hedefi bitset eşitsizliğe karşı test ediyor.
operator&= Bit tabanlı "ve" (&) işlemiyle bit kümeleri bileşimini yapar.
operator<< bir bitset içindeki bitleri belirtilen sayıda konumu sola kaydırarak sonucu yeni bitsetbir konumuna döndürür.
operator<<= bir bitset içindeki bitleri belirtilen sayıda konumu sola kaydırıp sonucu hedeflenen bitsetkonumuna döndürür.
operator== Belirtilen ile bir hedefi bitset eşitlik için test ediyor bitset.
operator>> bir bitset içindeki bitleri belirtilen sayıda konumu sağa kaydırarak sonucu yeni bitsetbir konumuna döndürür.
operator>>= bir bitset içindeki bitleri belirtilen sayıda konumu sağa kaydırarak sonucu hedeflenen bitsetöğesine döndürür.
operator[] değeri değiştirilebilirsebitset, belirtilen konumdaki bir bitset bite başvuru döndürür; aksi takdirde, bitin değerini bu konumda döndürür.
işleç^= Bit tabanlı "xor" (^) işlemiyle bit kümeleri bileşimini yapar.
operator|= Bit tabanlı "veya" (|) işlemiyle bit kümelerinin bit düzeyinde bir birleşimini yapar.
operator~ Bir hedefteki bitset tüm bitleri ters çevirir ve sonucu döndürür.

Yapılar

Veri Akışı Adı Açıklama
hash

all

Tümünün true olarak ayarlı olup olmadığını belirlemek için bu bit kümesindeki tüm bitleri test eder.

bool all() const;

Dönüş Değeri

Bu kümedeki tüm bitler true ise döndürür true . Bir veya daha fazla bit yanlışsa döndürür false .

any

Dizideki herhangi bir bitin 1 olarak ayarlanıp ayarlanmadığını sınar.

bool any() const;

Dönüş Değeri

true içindeki bitset herhangi bir bit 1 olarak ayarlanırsa; false tüm bitler 0 ise.

Örnek

// bitset_any.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;

   bitset<5> b1 ( 6 );
   bool b, rb;

   cout << "The original bitset b1( 6 ) is: ( "<< b1 << " )"
        << endl;

   b = b1.any ( );

   if ( b )
      cout << "At least one of the bits in bitset is set to 1."
           << endl;
   else
      cout << "None of the bits in bitset are set to 1."
           << endl;

   bitset<5> rb1;
   rb1 = b1.reset ( );

   cout << "The reset bitset is: ( "<< b1 << " )"
        << endl;

   rb = rb1.any ( );

   if ( rb )
      cout << "At least one of the bits in the reset bitset "
           << "are set to 1." << endl;
   else
      cout << "None of the bits in bitset b1 are set to 1."
           << endl;
}
The original bitset b1( 6 ) is: ( 00110 )
At least one of the bits in bitset is set to 1.
The reset bitset is: ( 00000 )
None of the bits in bitset b1 are set to 1.

bitset

sınıfının bitset<N> bir nesnesini oluşturur ve bitleri sıfıra, belirli bir değere ya da dizedeki karakterlerden alınan değerlere başlatır.

1) constexpr bitset();
2) bitset(unsigned long val);
3) constexpr bitset(unsigned long long val);
4) template <class CharType, class Traits, class Allocator>
    explicit bitset(
        const basic_string<CharType, Traits, Allocator>& str,
        typename basic_string<CharType, Traits, Allocator>::size_type pos = 0);
    
5) template <class CharType, class Traits, class Allocator>
    explicit bitset(
        const basic_string<CharType, Traits, Allocator>& str,
        typename basic_string<CharType, Traits, Allocator>::size_type pos,
        typename basic_string<CharType, Traits, Allocator>::size_type count,
        CharType Zero = CharType ('0'),
        CharType One = CharType ('1'));
    
6) template<class CharType>
    explicit bitset(
        const CharType* str,
        typename basic_string<CharType>::size_type
        n = basic_string<CharType>::npos,
        CharType zero = CharType('0'),
        CharType one = CharType('1'));

Parametreler

val
Temel iki gösterimi, oluşturulurken bitleri başlatmak için kullanılan işaretsiz tamsayı bitset .

str
Bit değerlerini başlatmak bitset için kullanılan sıfırlar ve değerler dizesi.

pos
Dizedeki karakterin soldan sağa sayılarak sıfırla başlayan konumu, içindeki bitsetilk biti başlatmak için kullanılır.

count
dizesindeki bitler bitsetiçin ilk değerleri sağlamak için kullanılan karakter sayısı.

Zero
Sıfırı temsil etmek için kullanılan karakter. Varsayılan değer '0'dır.

One
Bir karakteri temsil etmek için kullanılan karakter. Varsayılan değer :'1'.

Açıklamalar

1) sınıfının bitset<N> bir nesnesini oluşturur ve tüm N bitleri varsayılan sıfır değerine başlatır.

2-3) sınıfının bitset<N> nesnesini oluşturur ve parametresinden val bitleri başlatır.

4) sınıfının bitset<N> nesnesini oluşturur ve sıfır ve bir dizesinde sağlanan karakterlerden bitleri başlatır. Dizenin herhangi bir karakteri 0 veya 1 dışındaysa, oluşturucu sınıfının invalid argumentnesnesini oluşturur. Belirtilen konum (pos) dizenin uzunluğunu aşıyorsa, oluşturucu sınıfına out_of_rangeait bir nesnesi oluşturur. Oluşturucu yalnızca dizedeki karakterin 1 olduğu j bitset konumundaki pos + j bitleri ayarlar. Varsayılan olarak pos 0'dır.

5) benzer ancak 4) başka bir parametre içerir, countbu da başlatacak bit sayısını belirtir. sırasıyla 0 bit ve _One1 bit anlamına gelen hangi karakterin str yorumlanması gerektiğini gösteren iki isteğe bağlı parametresi _Zero vardır.

6) sıfır ve bir C stili karakter dizesinde sağlanan karakterlere karşılık gelen değerlere N bitlerini başlatan sınıfının bitset<N>nesnesini oluşturur. Dizeyi bir dize türüne dönüştürmeden oluşturucuyu çağırırsınız, örneğin: bitset<5> b5("01011");

Örnek

// bitset_bitset.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   // Using the default constructor
   using namespace std;
   bitset<2> b0;
   cout << "The set of bits in bitset<2> b0 is: ( "
        << b0 << " )." << endl;

   // Using the second member function
   bitset<5> b1 ( 6 );
   cout << "The set of bits in bitset<5> b1( 6 ) is: ( "
        << b1 << " )." << endl;

   // The template parameter N can be an expression
   bitset< 2 * sizeof ( int ) > b2;
   cout << "The set of bits in bitset< 2 * sizeof ( int ) > b2 is: ( "
        << b2 << " )." << endl;

   // The base two representation will be truncated
   // if its length exceeds the size of the bitset
   bitset<3> b3 ( 6 );
   cout << "The set of bits in bitset<3> b3( 6 ) is ( "
        << b3 << " )." << endl;

   // Using a c-style string to initialize the bitset
    bitset<7> b3andahalf ( "1001001" );
    cout << "The set of bits in bitset<7> b3andahalf ( \"1001001\" )"
         << " is ( " << b3andahalf << " )." << endl;

   // Using the fifth member function with the first parameter
   string bitval4 ( "10011" );
   bitset<5> b4 ( bitval4 );
   cout << "The set of bits in bitset<5> b4( bitval4 ) is ( "
        << b4 << " )." << endl;

   // Only part of the string may be used for initialization

   // Starting at position 3 for a length of 6 (100110)
   string bitval5 ("11110011011");
   bitset<6> b5 ( bitval5, 3, 6 );
   cout << "The set of bits in bitset<11> b5( bitval, 3, 6 ) is ( "
        << b5 << " )." << endl;

   // The bits not initialized with part of the string
   // will default to zero
   bitset<11> b6 ( bitval5, 3, 5 );
   cout << "The set of bits in bitset<11> b6( bitval5, 3, 5 ) is ( "
        << b6 << " )." << endl;

   // Starting at position 2 and continue to the end of the string
   bitset<9> b7 ( bitval5, 2 );
   cout << "The set of bits in bitset<9> b7( bitval, 2 ) is ( "
        << b7 << " )." << endl;
}
The set of bits in bitset<2> b0 is: ( 00 ).
The set of bits in bitset<5> b1( 6 ) is: ( 00110 ).
The set of bits in bitset<2 * sizeof ( int ) > b2 is: ( 00000000 ).
The set of bits in bitset<3> b3( 6 ) is ( 110 ).
The set of bits in bitset<5> b4( bitval4 ) is ( 10011 ).
The set of bits in bitset<11> b5( bitval, 3, 6 ) is ( 100110 ).
The set of bits in bitset<11> b6( bitval5, 3, 5 ) is ( 00000010011 ).
The set of bits in bitset<9> b7( bitval, 2 ) is ( 110011011 ).

count

Bit dizisinde ayarlanan bit sayısını döndürür.

size_t count() const;

Dönüş Değeri

Bit dizisinde ayarlanan bit sayısı.

Örnek

// bitset_count.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
    using namespace std;

    bitset<5> b1(4);

    cout << "The collection of bits in the original bitset is: ( "
         << b1 << " )" << endl;

    size_t i;
    i = b1.count();
    cout << "The number of bits in the bitset set to 1 is: "
         << i << "." << endl;

    bitset<5> fb1;
    fb1 = b1.flip();

    cout << "The collection of flipped bits in the modified bitset "
         << "is: ( " << b1 << " )" << endl;

    size_t ii;
    ii = fb1.count();
    cout << "The number of bits in the bitset set to 1 is: "
         << ii << "." << endl;
}
The collection of bits in the original bitset is: ( 00100 )
The number of bits in the bitset set to 1 is: 1.
The collection of flipped bits in the modified bitset is: ( 11011 )
The number of bits in the bitset set to 1 is: 4.

element_type

Veri türü için eş anlamlı olan ve içindeki öğe bitlerine başvurmak için kullanılabilen bir bitsettürbool.

typedef bool element_type;

Örnek

// bitset_elem_type.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;

   bitset<3> b1 ( 2 );
   cout << "Original bitset b1(6) is: ( "<< b1 << " )"
        << endl;

   //Compare two ways to reference bits in a bitset
   bool b;
   bitset<5>::element_type e;

   b = b1.test ( 2 );
   if ( b )
      cout << "The bit at position 2 of bitset b1"
           << "has a value of 1." << endl;
   else
      cout << "The bit at position 2 of bitset b1"
           << "has a value of 0." << endl;
   b1[2] = 1;
   cout << "Bitset b1 modified by b1[2] = 1 is: ( "<< b1 << " )"
        << endl;

   e = b1.test ( 2 );
   if ( e )
      cout << "The bit at position 2 of bitset b1"
           << "has a value of 1." << endl;
   else
      cout << "The bit at position 2 of bitset b1"
           << "has a value of 0." << endl;
}
Original bitset b1(6) is: ( 010 )
The bit at position 2 of bitset b1has a value of 0.
Bitset b1 modified by b1[2] = 1 is: ( 110 )
The bit at position 2 of bitset b1has a value of 1.

flip

Bir içindeki tüm bitlerin bitset değerini ters çevirir veya belirtilen konumda tek bir biti ters çevirir.

bitset<N>& flip();
bitset<N>& flip(size_t pos);

Parametreler

pos
Değeri ters çevrilecek bitin konumu.

Dönüş Değeri

Üye işlevinin çağrıldığı değiştirilmiş bitset öğesinin bir kopyası.

Açıklamalar

İkinci üye işlevi, parametre olarak belirtilen konum, biti ters çevrilen öğesinin boyutundan N bitset<N> büyükse bir out_of_range özel durum oluşturur.

Örnek

// bitset_flip.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;
   bitset<5> b1 ( 6 );

   cout << "The collection of bits in the original bitset is: ( "
        << b1 << " )" << endl;

   bitset<5> fb1;
   fb1 = b1.flip ( );

   cout << "After flipping all the bits, the bitset becomes: ( "
        << fb1 << " )" << endl;

   bitset<5> f3b1;
   f3b1 = b1.flip ( 3 );

   cout << "After flipping the fourth bit, the bitset becomes: ( "
        << f3b1 << " )" << endl << endl;

   bitset<5> b2;
   int i;
   for ( i = 0 ; i <= 4 ; i++ )
   {
      b2.flip(i);
      cout << b2 << "  The bit flipped is in position "
           << i << ".\n";
   }
}
The collection of bits in the original bitset is: ( 00110 )
After flipping all the bits, the bitset becomes: ( 11001 )
After flipping the fourth bit, the bitset becomes: ( 10001 )

00001  The bit flipped is in position 0.
00011  The bit flipped is in position 1.
00111  The bit flipped is in position 2.
01111  The bit flipped is in position 3.
11111  The bit flipped is in position 4.

hash

template <class T> struct hash;
template <size_t N> struct hash<bitset<N>>;

yok

Nesnede bitset bit 1 olarak ayarlanmamışsa sınar.

bool none() const;

Dönüş Değeri

true içinde hiçbir bit bitset 1 olarak ayarlanmamışsa; false en az bir bit 1 olarak ayarlanmışsa.

Örnek

// bitset_none.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;

   bitset<5> b1 ( 6 );
   bool b, rb;

   cout << "Original bitset b1(6) is: ( " << b1 << " )"
        << endl;

   b = b1.none ( );

   if ( b )
      cout << "None of the bits in bitset b1 are set to 1."
           << endl;
   else
      cout << "At least one of the bits in bitset b1 is set to 1."
           << endl;

   bitset<5> rb1;
   rb1 = b1.reset ( );
   rb = rb1.none ( );
   if ( rb )
      cout << "None of the bits in bitset b1 are set to 1."
           << endl;
   else
      cout << "At least one of the bits in bitset b1 is set to 1."
           << endl;
}
Original bitset b1(6) is: ( 00110 )
At least one of the bits in bitset b1 is set to 1.
None of the bits in bitset b1 are set to 1.

operator!=

Belirtilen bit kümesiyle eşitsizlik için hedef bit kümesini test edin.

bool operator!=(const bitset<N>& right) const;

Parametreler

right
Eşitsizlik bitset için hedef bit kümesiyle karşılaştırılacak olan.

Dönüş Değeri

true bit kümeleri farklıysa; false eğer aynıysa.

Açıklamalar

Bit kümeleri aynı boyutta olmalıdır.

Örnek

// bitset_op_NE.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;

   bitset<5> b1 ( 7 );
   bitset<5> b2 ( 7 );
   bitset<5> b3 ( 2 );
   bitset<4> b4 ( 7 );

   if ( b1 != b2 )
      cout << "Bitset b1 is different from bitset b2." << endl;
   else
      cout << "Bitset b1 is the same as bitset b2." << endl;

   if ( b1 != b3 )
      cout << "Bitset b1 is different from bitset b3." << endl;
   else
      cout << "Bitset b1 is the same as bitset b3." << endl;

   // This would cause an error because bitsets must have the
   // same size to be tested
   // if ( b1 != b4 )
   //   cout << "Bitset b1 is different from bitset b4." << endl;
   // else
   //   cout << "Bitset b1 is the same as bitset b4." << endl;
}
Bitset b1 is the same as bitset b2.
Bitset b1 is different from bitset b3.

operator&=

Bit tabanlı "ve" (&) işlemiyle bit kümeleri bileşimini yapar.

bitset<N>& operator&=(const bitset<N>& right);

Parametreler

right
bitset Bit düzeyinde hedef bit kümesiyle birleştirilecek olan.

Dönüş Değeri

Parametre olarak belirtilen bit düzeyinde "ve" (&) işleminden bitset kaynaklanan değiştirilen hedef bit kümesi.

Açıklamalar

İşleç tarafından AND birleştirilen iki bit, her bit doğruysa döndürür true ; aksi takdirde, bunların birleşimi döndürür false.

İki bit kümesinin aynı boyutta olması gerekir.

Örnek

// bitset_op_bitwise.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;

   bitset<5> b1 ( 7 );
   bitset<5> b2 ( 11 );
   bitset<4> b3 ( 7 );

   cout << "The target bitset b1 is:    ( "<< b1 << " )." << endl;
   cout << "The parameter bitset b2 is: ( "<< b2 << " )." << endl;
   cout << endl;

   b1 &= b2;
   cout << "After bitwise AND combination,\n"
        << "the target bitset b1 becomes:   ( "<< b1 << " )."
        << endl;

   // Note that the parameter-specified bitset is unchanged
   cout << "The parameter bitset b2 remains: ( "<< b2 << " )."
        << endl;

   // The following would cause an error because the bisets
   // must be of the same size to be combined
   // b1 &= b3;
}
The target bitset b1 is:    ( 00111 ).
The parameter bitset b2 is: ( 01011 ).

After bitwise AND combination,
the target bitset b1 becomes:   ( 00011 ).
The parameter bitset b2 remains: ( 01011 ).

operator<<

bir bitset içindeki bitleri belirtilen sayıda konumu sola kaydırarak sonucu yeni bitsetbir konumuna döndürür.

bitset<N> operator<<(size_t pos) const;

Parametreler

pos
soldaki bitlerin bitset kaydırılacağı konum sayısı.

Dönüş Değeri

Bitlerin bulunduğu değiştirilen bit kümesi, gerekli konum sayısıyla sola kaydırıldı.

Açıklamalar

Üye işleci işlevi, bir bitset içindeki bitleri belirtilen sayıda konumu sola kaydırdığı ve sonucu hedeflenen bitsetöğesine döndürdüğü yeri <<= döndürürbitset(*this) <<= pos.

Örnek

// bitset_op_LS.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;

   bitset<5> b1 ( 7 );

   cout << "The bitset b1 is: ( "<< b1 << " )." << endl;

   bitset<5> b2;
   b2 = b1 << 2;

   cout << "After shifting the bits 2 positions to the left,\n"
        << " the bitset b2 is: ( "<< b2 << " )."
        << endl;

   bitset<5> b3 = b2 >> 1;

   cout << "After shifting the bits 1 position to the right,\n"
        << " the bitset b3 is: ( " << b3 << " )."
        << endl;
}

operator<<=

bir bitset içindeki bitleri belirtilen sayıda konumu sola kaydırıp sonucu hedeflenen bitsetkonumuna döndürür.

bitset<N>& operator<<=(size_t pos);

Parametreler

pos
soldaki bitlerin bitset kaydırılacağı konum sayısı.

Dönüş Değeri

Hedeflenen bitset , bitlerin gerekli konum sayısı kadar sola kaydırıldığı şekilde değiştirildi.

Açıklamalar

Konuma kayacak öğe yoksa, işlev biti 0 değerine temizler.

Örnek

// bitset_op_LSE.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;
   bitset<5> b1 ( 7 );
   cout << "The target bitset b1 is: ( "<< b1 << " )." << endl;
   b1 <<= 2;
   cout << "After shifting the bits 2 positions to the left,\n"
        << "the target bitset b1 becomes: ( "<< b1 << " )."
        << endl;
}
The target bitset b1 is: ( 00111 ).
After shifting the bits 2 positions to the left,
the target bitset b1 becomes: ( 11100 ).

operator==

Belirtilen bit kümesiyle eşitlik için hedef bit kümesini test edin.

bool operator==(const bitset<N>& right) const;

Parametreler

right
Eşitlik bitset için hedef bit kümesiyle karşılaştırılacak olan.

Dönüş Değeri

true bit kümeleri aynıysa; false eğer farklılarsa.

Açıklamalar

Bit kümeleri aynı boyutta olmalıdır.

Örnek

// bitset_op_EQ.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;
   bitset<5> b1 ( 7 );
   bitset<5> b2 ( 7 );
   bitset<5> b3 ( 2 );
   bitset<4> b4 ( 7 );

   if ( b1 == b2 )
      cout << "Bitset b1 is the same as bitset b2." << endl;
   else
      cout << "Bitset b1 is different from bitset b2." << endl;

   if ( b1 == b3 )
      cout << "Bitset b1 is the same as bitset b3." << endl;
   else
      cout << "Bitset b1 is different from bitset b3." << endl;

   // This would cause an error because bitsets must have the
   // same size to be tested
   // if ( b1 == b4 )
   //   cout << "Bitset b1 is the same as bitset b4." << endl;
   // else
   //   cout << "Bitset b1 is different from bitset b4." << endl;
}
Bitset b1 is the same as bitset b2.
Bitset b1 is different from bitset b3.

operator>>

Bir bitset içindeki bitleri belirtilen sayıda konumu sağa kaydırarak sonucu yeni bir bit kümesine döndürür.

bitset<N> operator>>(size_t pos) const;

Parametreler

pos
sağdaki bitlerin bitset kaydırılacağı konum sayısı.

Dönüş Değeri

Bitlerin hedeflenene bitsetgöre gerekli konum sayısını sağa kaydırdığı yeni bir bit kümesi.

Örnek

// bitset_op_RS.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;
   bitset<5> b1 ( 7 );
   cout << "The bitset b1 is: ( "<< b1 << " )." << endl;

   bitset<5> b2;
   b2 = b1 << 2;

   cout << "After shifting the bits 2 positions to the left,\n"
        << "the bitset b2 is: ( "<< b2 << " )."
        << endl;
   bitset<5> b3 = b2 >> 1;

   cout << "After shifting the bits 1 position to the right,\n"
        << "the bitset b3 is: ( " << b3 << " )."
        << endl;
}
The bitset b1 is: ( 00111 ).
After shifting the bits 2 positions to the left,
the bitset b2 is: ( 11100 ).
After shifting the bits 1 position to the right,
the bitset b3 is: ( 01110 ).

operator>>=

bir bitset içindeki bitleri belirtilen sayıda konumu sağa kaydırarak sonucu hedeflenen bitsetöğesine döndürür.

bitset<N>& operator>>=(size_t pos);

Parametreler

pos
sağdaki bitlerin bitset kaydırılacağı konum sayısı.

Dönüş Değeri

Hedeflenen bitset , bitlerin gerekli konum sayısı kadar sağa kaydırıldığı şekilde değiştirildi.

Açıklamalar

Konuma kayacak öğe yoksa, işlev biti 0 değerine temizler.

Örnek

// bitset_op_RSE.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;
   bitset<5> b1 ( 28 );
   cout << "The target bitset b1 is: ( "<< b1 << " )." << endl;

   b1 >>= 2;
   cout << "After shifting the bits 2 positions to the right,\n"
        << "the target bitset b1 becomes: ( "<< b1 << " )."
        << endl;
}
The target bitset b1 is: ( 11100 ).
After shifting the bits 2 positions to the right,
the target bitset b1 becomes: ( 00111 ).

operator[]

değeri değiştirilebilirsebitset, belirtilen konumdaki bir bitset bite başvuru döndürür; aksi takdirde, bitin değerini bu konumda döndürür.

bool operator[](size_t pos) const;
reference operator[](size_t pos);

Parametreler

pos
biti içinde bitsetbuluan konum.

Açıklamalar

Derlemenizde 1 veya 2 olarak tanımladığınızda _ITERATOR_DEBUG_LEVEL , sınırlarının bitsetdışındaki bir öğeye erişmeye çalışırsanız yürütülebilir dosyanızda bir çalışma zamanı hatası oluşur. Daha fazla bilgi için bkz . İşaretli Yineleyiciler.

Örnek

// bitset_op_REF.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;
   bool b;
   bitset<5> b1 ( 6 );
   cout << "The initialized bitset<5> b1( 2 ) is: ( "<< b1 << " )."
        << endl;

   int i;
   for ( i = 0 ; i <= 4 ; i++ )
   {
      b = b1[ i ];
      cout << "  The bit in position "
           << i << " is " << b << ".\n";
   }
}

operator^=

Bit tabanlı "xor" (^) işlemiyle bit kümeleri bileşimini yapar.

bitset<N>& operator^=(const bitset<N>& right);

Parametreler

right
bitset Bit düzeyinde hedef bit kümesiyle birleştirilecek olan.

Dönüş Değeri

Parametre olarak belirtilen bit düzeyinde "xor" (^) işleminden bitset kaynaklanan değiştirilmiş hedef bit kümesi.

Açıklamalar

Bit düzeyinde "xor" işleci (^) true ile birleştirilen iki bit, bitlerin trueen az biri olduğunda döndürür, ancak her ikisi birden değilse, bileşimleri döndürür false.

Bit kümeleri aynı boyutta olmalıdır.

Örnek

// bitset_op_bitwiseOR.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;
   bitset<5> b1 ( 7 );
   bitset<5> b2 ( 11 );
   bitset<4> b3 ( 7 );

   cout << "The target bitset b1 is:    ( "<< b1 << " )." << endl;
   cout << "The parameter bitset b2 is: ( "<< b2 << " )." << endl;
   cout << endl;

   b1 ^= b2;
   cout << "After bitwise exclusive OR combination,\n"
        << "the target bitset b1 becomes:   ( "<< b1 << " )."
        << endl;

   // Note that the parameter-specified bitset in unchanged
   cout << "The parameter bitset b2 remains: ( "<< b2 << " )."
        << endl;

   // The following would cause an error because the bitsets
   // must be of the same size to be combined
   // b1 |= b3;
}
The target bitset b1 is:    ( 00111 ).
The parameter bitset b2 is: ( 01011 ).

After bitwise exclusive OR combination,
the target bitset b1 becomes:   ( 01100 ).
The parameter bitset b2 remains: ( 01011 ).

operator|=

Bit tabanlı "veya" (|) işlemini kullanarak iki bit kümesini birleştirir.

bitset<N>& operator|=(const bitset<N>& right);

Parametreler

right
bitset Bit düzeyinde hedef bitsetile birleştirilecek olan .

Dönüş Değeri

Parametre olarak belirtilen bit düzeyinde "veya" (|) işleminden bitset kaynaklanan değiştirilmiş hedef bit kümesi.

Açıklamalar

Bitlerden en az biri ise kapsayıcı OR işleç tarafından birleştirilen iki bit döndürürtrue; her iki bit truefalsede ise, bunların birleşimi döndürürfalse.

Bit kümeleri aynı boyutta olmalıdır.

Örnek

// bitset_op_BIO.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;

   bitset<5> b1 ( 7 );
   bitset<5> b2 ( 11 );
   bitset<4> b3 ( 7 );

   cout << "The target bitset b1 is:    ( "<< b1 << " )." << endl;
   cout << "The parameter bitset b2 is: ( "<< b2 << " )." << endl;
   cout << endl;

   b1 |= b2;
   cout << "After bitwise inclusive OR combination,\n"
        << "the target bitset b1 becomes:   ( "<< b1 << " )."
        << endl;

   // Note that the parameter-specified bitset in unchanged
   cout << "The parameter bitset b2 remains: ( "<< b2 << " )."
        << endl;

   // The following would cause an error because the bisets
   // must be of the same size to be combined
   // b1 |= b3;
}
The target bitset b1 is:    ( 00111 ).
The parameter bitset b2 is: ( 01011 ).

After bitwise inclusive OR combination,
the target bitset b1 becomes:   ( 01111 ).
The parameter bitset b2 remains: ( 01011 ).

operator~

Hedef bit kümesindeki tüm bitleri ters çevirir ve sonucu döndürür.

bitset<N> operator~() const;

Dönüş Değeri

bitset hedeflenen ile ilgili olarak tüm bitleri ters çevrilmişbitset.

Örnek

// bitset_op_invert.cpp
// compile with: /EHsc
#include <iostream>
#include <string>
#include <bitset>

int main( )
{
   using namespace std;

   bitset<5> b1 ( 7 );
   bitset<5> b2;
   b2 = ~b1;

   cout << "Bitset b1 is: ( "<< b1 << " )." << endl;
   cout << "Bitset b2 = ~b1 is: ( "<< b2 << " )." << endl;

   // These bits could also be flipped using the flip member function
   bitset<5> b3;
   b3 = b1.flip( );
   cout << "Bitset b3 = b1.flip( ) is: ( "<< b2 << " )." << endl;
}
Bitset b1 is: ( 00111 ).
Bitset b2 = ~b1 is: ( 11000 ).
Bitset b3 = b1.flip( ) is: ( 11000 ).

reference

sınıfının yardımcı sınıfı olarak tek tek bitlere erişmek ve işlemek için kullanılan bir bitset içinde yer alan bitlere başvurular sağlayan bir ara sunucu sınıfıbitset.operator[]

class reference {
   friend class bitset<N>;
public:
   reference& operator=(bool val);
   reference& operator=(const reference& bitref);
   bool operator~() const;
   operator bool() const;
   reference& flip();
};

Parametreler

val
içindeki bir bite atanacak türündeki bool bitsetnesnenin değeri.

bitref
formun x [ i ] konumundaki bitine i bitset xbaşvurusu.

Dönüş Değeri

Sınıf başvurusunun birinci, ikinci ve beşinci üye işlevleri için bağımsız değişken konumu tarafından belirtilen ve veya içindeki bite bitset yapılan başvuru, true sınıf başvurusunun üçüncü ve dördüncü üye işlevleri için içinde değiştirilen bitin bitset değerini yansıtır.false

Açıklamalar

sınıfı reference yalnızca için bitset operator[]bir yardımcı sınıf olarak bulunur. Üye sınıfı, içindeki tek bir bite erişebilen bir bitsetnesneyi açıklar. b türünde boolx bir nesne ve y türündeki bitset<N>nesneler ve i j bu tür bir nesne içinde geçerli konumlar olsun. Gösterimi x [i] bit kümesindeki konumundaki i bite başvurur x. sınıfının reference üye işlevleri sırayla aşağıdaki işlemleri sağlar:

İşlem Tanım
x[i] = b değeri bit kümesinde bit konumunda i depolar bool x.b
x[i] = y[j] bit [ j] değerini bit ykümesinde bit konumunda i depolarx.
b = ~ x[i] [ i] bitinin xçevrilmiş değerini içinde bool bdepolar.
b = x[i] [ i] bitinin xdeğerini içinde bool bdepolar.
x[i]. flip( ) [ i] bitinin xçevrilmiş değerini içinde xbit konumunda i depolar.

Örnek

// bitset_reference.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;

   bitset<5> b1 ( 2 );
   bitset<5> b2 ( 6 );
   cout << "The initialized bitset<5> b1( 2 ) is: ( "<< b1 << " )."
        << endl;
   cout << "The initialized bitset<5> b2( 6 ) is: ( "<< b2 << " )."
        << endl;

   // Example of x [i] = b storing bool b at bit position i
   // in bitset x
   b1[ 0 ] = true;
   cout << "The bitset<5> b1 with the bit at position 0 set to 1"
        << "is: ( "<< b1 << " )" << endl;

   // Example of x [i] = y [j] storing the bool value of the
   // bit at position j in bitset y at bit position i in bitset x
   b2 [4] = b1 [0];      // b1 [0] = true
   cout << "The bitset<5> b2 with the bit at position 4 set to the "
        << "value\nof the bit at position 0 of the bit in "
        << "bitset<5> b1 is: ( "<<  b2  << " )" << endl;

   // Example of b = ~x [i] flipping the value of the bit at
   // position i of bitset x and storing the value in an
   // object b of type bool
   bool b = ~b2 [4];      // b2 [4] = false
   if ( b )
      cout << "The value of the object b = ~b2 [4] "
           << "of type bool is true." << endl;
   else
      cout << "The value of the object b = ~b2 [4] "
           << "of type bool is false." << endl;

   // Example of b = x [i] storing the value of the bit at
   // position i of bitset x in the object b of type bool
   b = b2 [4];
   if ( b )
      cout << "The value of the object b = b2 [4] "
           << "of type bool is true." << endl;
   else
      cout << "The value of the object b = b2 [4] "
           << "of type bool is false." << endl;

   // Example of x [i] . flip ( ) toggling the value of the bit at
   // position i of bitset x
   cout << "Before flipping the value of the bit at position 4 in "
        << "bitset b2,\nit is ( "<<  b2  << " )." << endl;
   b2 [4].flip( );
   cout << "After flipping the value of the bit at position 4 in "
        << "bitset b2,\nit becomes ( "<<  b2  << " )." << endl;
   bool c;
   c = b2 [4].flip( );
   cout << "After a second flip, the value of the position 4 "
        << "bit in b2 is now: " << c << ".";
}
The initialized bitset<5> b1( 2 ) is: ( 00010 ).
The initialized bitset<5> b2( 6 ) is: ( 00110 ).
The bitset<5> b1 with the bit at position 0 set to 1 is: ( 00011 )
The bitset<5> b2 with the bit at position 4 set to the value
of the bit at position 0 of the bit in bitset<5> b1 is: ( 10110 )
The value of the object b = ~b2 [4] of type bool is false.
The value of the object b = b2 [4] of type bool is true.
Before flipping the value of the bit at position 4 in bitset b2,
it is ( 10110 ).
After flipping the value of the bit at position 4 in bitset b2,
it becomes ( 00110 ).
After a second flip, the value of the position 4 bit in b2 is now: 1.

reset

Bir içindeki tüm bitleri 0'a bitset sıfırlar veya belirli bir konumdaki bir biti 0 olarak sıfırlar.

bitset<N>& reset();
bitset<N>& reset(size_t pos);

Parametreler

pos
0'a sıfırlanacak bitin bitset konumu.

Dönüş Değeri

Üye işlevinin bitset çağrıldığı öğesinin bir kopyası.

Açıklamalar

Belirtilen konum boyutunun boyutundan bitsetbüyükse, ikinci üye işlevi bir out_of_range özel durum oluşturur.

Örnek

// bitset_reset.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;

   bitset<5> b1 ( 13 );
   cout << "The set of bits in bitset<5> b1(13) is: ( "<< b1 << " )"
        << endl;

   bitset<5> b1r3;
   b1r3 = b1.reset( 2 );
   cout << "The collection of bits obtained from resetting the\n"
        << "third bit of bitset b1 is: ( "<< b1r3 << " )"
        << endl;

   bitset<5> b1r;
   b1r = b1.reset( );
   cout << "The collecion of bits obtained from resetting all\n"
        << "the elements of the bitset b1 is: ( "<< b1r << " )"
        << endl;
}
The set of bits in bitset<5> b1(13) is: ( 01101 )
The collecion of bits obtained from resetting the
third bit of bitset b1 is: ( 01001 )
The collecion of bits obtained from resetting all
the elements of the bitset b1 is: ( 00000 )

set

Bir bitset içindeki tüm bitleri 1 olarak ayarlar veya belirli bir konumdaki bir biti 1 olarak ayarlar.

bitset<N>& set();

bitset<N>& set(
    size_t pos,
    bool val = true);

Parametreler

pos
Atanan değerin ayarlanacağı içindeki bitin bitset konumu.

val
Belirtilen konumda bite atanacak değer.

Dönüş Değeri

Üye işlevinin bitset çağrıldığı öğesinin bir kopyası.

Açıklamalar

Belirtilen konum boyutunun boyutundan bitsetbüyükse, ikinci üye işlevi bir out_of_range özel durum oluşturur.

Örnek

// bitset_set.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;

   bitset<5> b1 ( 6 );
   cout << "The set of bits in bitset<5> b1(6) is: ( "<< b1 << " )"
        << endl;

   bitset<5> b1s0;
   b1s0 = b1.set( 0 );
   cout << "The collecion of bits obtained from setting the\n"
        << "zeroth bit of bitset b1 is: ( "<< b1s0 << " )"
        << endl;

   bitset<5> bs1;
   bs1 = b1.set( );
   cout << "The collecion of bits obtained from setting all the\n"
        << "elements of the bitset b1 is: ( "<< bs1 << " )"
        << endl;
}
The set of bits in bitset<5> b1(6) is: ( 00110 )
The collecion of bits obtained from setting the
zeroth bit of bitset b1 is: ( 00111 )
The collecion of bits obtained from setting all the
elements of the bitset b1 is: ( 11111 )

size

Nesnedeki bitset bit sayısını döndürür.

size_t size() const;

Dönüş Değeri

bir bitset<N>içindeki bit Nsayısı.

Örnek

// bitset_size.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main()
{
    using namespace std;

    bitset<5> b1(6);
    size_t i;

    cout << "The set of bits in bitset<5> b1( 6 ) is: ( "<< b1 << " )"
         << endl;

    i = b1.size();

    cout << "The number of bits in bitset b1 is: " << i << "."
         << endl;
}
The set of bits in bitset<5> b1( 6 ) is: ( 00110 )
The number of bits in bitset b1 is: 5.

test

içinde belirtilen konumdaki bitset bitin 1 olarak ayarlanıp ayarlanmadığını sınar.

bool test(size_t pos) const;

Parametreler

pos
değerini test etmek için içindeki bitset bitin konumu.

Dönüş Değeri

true bağımsız değişken konumu tarafından belirtilen bit 1 olarak ayarlanırsa; aksi takdirde , false.

Açıklamalar

Üye işlevi bir out_of_range

to_string

Nesneyi dize bitset gösterimine dönüştürür.

template <class charT = char, class traits = char_traits<charT>, class Allocator = allocator<charT> >
   basic_string<charT, traits, Allocator> to_string(charT zero = charT('0'), charT one = charT('1')) const;

Dönüş değeri

sınıfının basic_stringdize nesnesi; burada içindeki bitset her bit kümesinde karşılık gelen 1 karakteri ve bit ayarlanmamışsa 0 karakteri bulunur.

Örnek

// bitset_to_string.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>
#include <string>

int main( )
{
   using namespace std;

   bitset<5> b1 ( 7 );

   cout << "The ordered set of bits in the bitset<5> b1( 7 )"
        << "\n  that was generated by the number 7 is: ( "
        << b1 << " )" << endl;

   string s1;
   s1 =  b1.template to_string<char,
   char_traits<char>, allocator<char> >( );
   cout << "The string returned from the bitset b1"
        << "\n  by the member function to_string( ) is: "
        << s1 << "." << endl;
}
The ordered set of bits in the bitset<5> b1( 7 )
  that was generated by the number 7 is: ( 00111 )
The string returned from the bitset b1
  by the member function to_string( ) is: 00111.

to_ullong

Nesnenin içeriğiyle bitset aynı bit kümesini içeren bir unsigned long long değer döndürür.

unsigned long long to_ullong() const;

Dönüş değeri

Bit dizisindeki bit değerlerinin toplamını olarak unsigned long longdöndürür. Bu unsigned long long değer, bir bitsetbaşlatmak için kullanılırsa aynı küme bitlerini yeniden oluşturur.

Özel durumlar

bit dizisindeki herhangi bir overflow_error bit, türünde unsigned long longbir değer olarak temsil edilmeyecek bir bit değerine sahipse bir nesnesi oluşturur.

Açıklamalar

Bit dizisindeki bit değerlerinin toplamını olarak unsigned long longdöndürür.

to_ulong

Bir bitset nesneyi, başlatmak için kullanılırsa bulunan bit dizisini oluşturacak tamsayıya bitsetdönüştürür.

unsigned long to_ulong( ) const;

Dönüş değeri

öğesinin başlatılmasında bitsetkullanılırsa içinde bitleri oluşturacak bir bitset tamsayı.

Açıklamalar

Üye işlevinin uygulanması, içinde bulunan bit dizisinde bulunan 1 ve 0 basamaklık aynı diziye sahip tamsayıyı bitsetdöndürür.

Üye işlevi, bit dizisindeki herhangi bir bit türünde bir overflow_error değer olarak temsil edilmeyecek bir bit değerine unsigned longsahipse bir nesnesi oluşturur.

Örnek

// bitset_to_ulong.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;

   bitset<5> b1 ( 7 );

   cout << "The ordered set of bits in the bitset<5> b1( 7 )"
        << "\n  that was generated by the number 7 is: ( "
        << b1 << " )" << endl;

   unsigned long int i;
   i = b1.to_ulong( );
   cout << "The integer returned from the bitset b1,"
        << "\n  by the member function to_long( ), that"
        << "\n  generated the bits as a base two number is: "
        << i << "." << endl;
}
The ordered set of bits in the bitset<5> b1( 7 )
  that was generated by the number 7 is: ( 00111 )
The integer returned from the bitset b1,
  by the member function to_long( ), that
  generated the bits as a base two number is: 7.