Inheritance diagram for _GLIBCXX_STD::bitset< _Nb >:
Public Member Functions | |
bitset () | |
All bits set to zero. | |
bitset (unsigned long __val) | |
Initial bits bitwise-copied from a single word (others set to zero). | |
template<class _CharT, class _Traits, class _Alloc> | bitset (const basic_string< _CharT, _Traits, _Alloc > &__s, size_t __position=0) |
Use a subset of a string. | |
template<class _CharT, class _Traits, class _Alloc> | bitset (const basic_string< _CharT, _Traits, _Alloc > &__s, size_t __position, size_t __n) |
Use a subset of a string. | |
bitset< _Nb > & | set () |
Sets every bit to true. | |
bitset< _Nb > & | set (size_t __position, bool __val=true) |
Sets a given bit to a particular value. | |
bitset< _Nb > & | reset () |
Sets every bit to false. | |
bitset< _Nb > & | reset (size_t __position) |
Sets a given bit to false. | |
bitset< _Nb > & | flip () |
Toggles every bit to its opposite value. | |
bitset< _Nb > & | flip (size_t __position) |
Toggles a given bit to its opposite value. | |
bitset< _Nb > | operator~ () const |
See the no-argument flip(). | |
unsigned long | to_ulong () const |
Retuns a numerical interpretation of the bitset. | |
template<class _CharT, class _Traits, class _Alloc> basic_string< _CharT, _Traits, _Alloc > | to_string () const |
Retuns a character interpretation of the bitset. | |
template<class _CharT, class _Traits, class _Alloc> void | _M_copy_from_string (const basic_string< _CharT, _Traits, _Alloc > &__s, size_t, size_t) |
template<class _CharT, class _Traits, class _Alloc> void | _M_copy_to_string (basic_string< _CharT, _Traits, _Alloc > &) const |
size_t | count () const |
Returns the number of bits which are set. | |
size_t | size () const |
Returns the total number of bits. | |
bool | test (size_t __position) const |
Tests the value of a bit. | |
bool | any () const |
Tests whether any of the bits are on. | |
bool | none () const |
Tests whether any of the bits are on. | |
size_t | _Find_first () const |
Finds the index of the first "on" bit. | |
size_t | _Find_next (size_t __prev) const |
Finds the index of the next "on" bit after prev. | |
bitset< _Nb > & | operator &= (const bitset< _Nb > &__rhs) |
Operations on bitsets. | |
bitset< _Nb > & | operator|= (const bitset< _Nb > &__rhs) |
bitset< _Nb > & | operator^= (const bitset< _Nb > &__rhs) |
bitset< _Nb > & | operator<<= (size_t __position) |
Operations on bitsets. | |
bitset< _Nb > & | operator>>= (size_t __position) |
bitset< _Nb > & | _Unchecked_set (size_t __pos) |
bitset< _Nb > & | _Unchecked_set (size_t __pos, int __val) |
bitset< _Nb > & | _Unchecked_reset (size_t __pos) |
bitset< _Nb > & | _Unchecked_flip (size_t __pos) |
bool | _Unchecked_test (size_t __pos) const |
reference | operator[] (size_t __position) |
Array-indexing support. | |
bool | operator[] (size_t __position) const |
bool | operator== (const bitset< _Nb > &__rhs) const |
These comparisons for equality/inequality are, well, bitwise. | |
bool | operator!= (const bitset< _Nb > &__rhs) const |
bitset< _Nb > | operator<< (size_t __position) const |
Self-explanatory. | |
bitset< _Nb > | operator>> (size_t __position) const |
Private Types | |
typedef _Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb) | _Base ) |
typedef unsigned long | _WordT |
Private Member Functions | |
void | _M_do_sanitize () |
Friends | |
class | reference |
(Note that bitset does not meet the formal requirements of a container. Mainly, it lacks iterators.)
The template argument, Nb, may be any non-negative number, specifying the number of bits (e.g., "0", "12", "1024*1024").
In the general unoptimized case, storage is allocated in word-sized blocks. Let B be the number of bits in a word, then (Nb+(B-1))/B words will be used for storage. B - Nb%B bits are unused. (They are the high-order bits in the highest word.) It is a class invariant that those unused bits are always zero.
If you think of bitset as "a simple array of bits," be aware that your mental picture is reversed: a bitset behaves the same way as bits in integers do, with the bit at index 0 in the "least significant / right-hand" position, and the bit at index Nb-1 in the "most significant / left-hand" position. Thus, unlike other containers, a bitset's index "counts from right to left," to put it very loosely.
This behavior is preserved when translating to and from strings. For example, the first line of the following program probably prints "b('a') is 0001100001" on a modern ASCII system.
#include <bitset> #include <iostream> #include <sstream> using namespace std; int main() { long a = 'a'; bitset<10> b(a); cout << "b('a') is " << b << endl; ostringstream s; s << b; string str = s.str(); cout << "index 3 in the string is " << str[3] << " but\n" << "index 3 in the bitset is " << b[3] << endl; }
Also see http://gcc.gnu.org/onlinedocs/libstdc++/ext/sgiexts.html#ch23 for a description of extensions.
Definition at line 603 of file bitset.
|
Reimplemented in __gnu_debug_def::bitset< _Nb >. |
|
Reimplemented from _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>. |
|
All bits set to zero.
Reimplemented in __gnu_debug_def::bitset< _Nb >. |
|
Initial bits bitwise-copied from a single word (others set to zero).
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 694 of file bitset. References _GLIBCXX_STD::bitset< _Nb >::_M_do_sanitize(). |
|
Use a subset of a string.
Definition at line 707 of file bitset. References __N, and _GLIBCXX_STD::bitset< _Nb >::_M_copy_from_string(). |
|
Use a subset of a string.
Definition at line 727 of file bitset. References __N, and _GLIBCXX_STD::bitset< _Nb >::_M_copy_from_string(). |
|
Definition at line 1074 of file bitset. References __N, std::min(), _GLIBCXX_STD::bitset< _Nb >::reset(), and _GLIBCXX_STD::bitset< _Nb >::set(). Referenced by _GLIBCXX_STD::bitset< _Nb >::bitset(), and _GLIBCXX_STD::operator>>(). |
|
Definition at line 1097 of file bitset. References _GLIBCXX_STD::bitset< _Nb >::_Unchecked_test(). Referenced by _GLIBCXX_STD::bitset< _Nb >::to_string(). |
|
Definition at line 610 of file bitset. Referenced by _GLIBCXX_STD::bitset< _Nb >::bitset(), _GLIBCXX_STD::bitset< _Nb >::flip(), _GLIBCXX_STD::bitset< _Nb >::operator<<=(), _GLIBCXX_STD::bitset< _Nb >::operator>>=(), and _GLIBCXX_STD::bitset< _Nb >::set(). |
|
Tests whether any of the bits are on.
Definition at line 1028 of file bitset. References _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_is_any(). |
|
Returns the number of bits which are set.
Definition at line 992 of file bitset. References _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_do_count(). |
|
Toggles a given bit to its opposite value.
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 913 of file bitset. References __N, and _GLIBCXX_STD::bitset< _Nb >::_Unchecked_flip(). |
|
Toggles every bit to its opposite value.
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 900 of file bitset. References _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_do_flip(), and _GLIBCXX_STD::bitset< _Nb >::_M_do_sanitize(). |
|
Tests whether any of the bits are on.
Definition at line 1035 of file bitset. References _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_is_any(). |
|
Operations on bitsets.
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 745 of file bitset. References _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_do_and(). |
|
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 1005 of file bitset. References _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_is_equal(). |
|
Self-explanatory.
Reimplemented in __gnu_debug_def::bitset< _Nb >. |
|
Operations on bitsets.
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 774 of file bitset. References _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_do_left_shift(), _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_do_reset(), and _GLIBCXX_STD::bitset< _Nb >::_M_do_sanitize(). |
|
These comparisons for equality/inequality are, well, bitwise.
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 1001 of file bitset. References _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_is_equal(). |
|
Reimplemented in __gnu_debug_def::bitset< _Nb >. |
|
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 787 of file bitset. References _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_do_reset(), _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_do_right_shift(), and _GLIBCXX_STD::bitset< _Nb >::_M_do_sanitize(). |
|
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 945 of file bitset. References _GLIBCXX_STD::bitset< _Nb >::_Unchecked_test(). |
|
Array-indexing support.
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 942 of file bitset. References _GLIBCXX_STD::bitset< _Nb >::reference. |
|
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 759 of file bitset. References _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_do_xor(). |
|
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 752 of file bitset. References _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_do_or(). |
|
See the no-argument flip().
Reimplemented in __gnu_debug_def::bitset< _Nb >. |
|
Sets a given bit to false.
set(pos,false) .
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 889 of file bitset. References __N, and _GLIBCXX_STD::bitset< _Nb >::_Unchecked_reset(). |
|
Sets every bit to false.
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 875 of file bitset. References _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_do_reset(). Referenced by _GLIBCXX_STD::bitset< _Nb >::_M_copy_from_string(). |
|
Sets a given bit to a particular value.
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 864 of file bitset. References __N, and _GLIBCXX_STD::bitset< _Nb >::_Unchecked_set(). |
|
Sets every bit to true.
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 850 of file bitset. References _GLIBCXX_STD::bitset< _Nb >::_M_do_sanitize(), and _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_do_set(). Referenced by _GLIBCXX_STD::bitset< _Nb >::_M_copy_from_string(). |
|
Returns the total number of bits.
|
|
Tests the value of a bit.
Definition at line 1016 of file bitset. References __N, and _GLIBCXX_STD::bitset< _Nb >::_Unchecked_test(). |
|
Retuns a character interpretation of the bitset.
Also note that you must specify the string's template parameters explicitly. Given a bitset
Reimplemented in __gnu_debug_def::bitset< _Nb >. Definition at line 973 of file bitset. References _GLIBCXX_STD::bitset< _Nb >::_M_copy_to_string(). |
|
Retuns a numerical interpretation of the bitset.
Definition at line 955 of file bitset. References _GLIBCXX_STD::_Base_bitset< _GLIBCXX_BITSET_WORDS(_Nb)>::_M_do_to_ulong(). |
|
Definition at line 687 of file bitset. Referenced by __gnu_debug_def::bitset< _Nb >::operator[](), and _GLIBCXX_STD::bitset< _Nb >::operator[](). |