Standard library header <bitset>
From cppreference.com
This header is part of the general utility library.
Includes | ||
std::basic_string class template | ||
Forward declarations of all classes in the input/output library | ||
Classes | ||
implements constant length bit array (class template) | ||
(C++11) | hash support for std::bitset (class template specialization) | |
Forward declarations | ||
Defined in header <functional> | ||
(C++11) | hash function object (class template) | |
Functions | ||
performs binary logic operations on bitsets (function template) | ||
performs stream input and output of bitsets (function template) |
[edit]Synopsis
#include <string>#include <iosfwd> // for istream, ostream namespace std {template<size_t N>class bitset; // bitset operatorstemplate<size_t N> bitset<N> operator&(const bitset<N>&, const bitset<N>&)noexcept;template<size_t N> bitset<N> operator|(const bitset<N>&, const bitset<N>&)noexcept;template<size_t N> bitset<N> operator^(const bitset<N>&, const bitset<N>&)noexcept;template<class CharT, class Traits, size_t N> basic_istream<CharT, Traits>& operator>>(basic_istream<CharT, Traits>& is, bitset<N>& x);template<class CharT, class Traits, size_t N> basic_ostream<CharT, Traits>& operator<<(basic_ostream<CharT, Traits>& os, const bitset<N>& x);}
[edit]Class template std::bitset
namespace std {template<size_t N>class bitset {public:// bit referenceclass reference {friendclass bitset; reference()noexcept; public: reference(const reference&)=default; ~reference(); reference& operator=(bool x)noexcept;// for b[i] = x; reference& operator=(const reference&)noexcept;// for b[i] = b[j];bool operator~()constnoexcept;// flips the bit operator bool()constnoexcept;// for x = b[i]; reference& flip()noexcept;// for b[i].flip();}; // constructorsconstexpr bitset()noexcept;constexpr bitset(unsignedlonglong val)noexcept;template<class CharT, class Traits, class Allocator>explicit bitset(const basic_string<CharT, Traits, Allocator>& str, typename basic_string<CharT, Traits, Allocator>::size_type pos =0, typename basic_string<CharT, Traits, Allocator>::size_type n = basic_string<CharT, Traits, Allocator>::npos, CharT zero = CharT('0'), CharT one = CharT('1'));template<class CharT>explicit bitset(const charT* str, typename basic_string<CharT>::size_type n = basic_string<CharT>::npos, CharT zero = CharT('0'), CharT one = CharT('1')); // bitset operations bitset<N>& operator&=(const bitset<N>& rhs)noexcept; bitset<N>& operator|=(const bitset<N>& rhs)noexcept; bitset<N>& operator^=(const bitset<N>& rhs)noexcept; bitset<N>& operator<<=(size_t pos)noexcept; bitset<N>& operator>>=(size_t pos)noexcept; bitset<N>& set()noexcept; bitset<N>& set(size_t pos, bool val =true); bitset<N>& reset()noexcept; bitset<N>& reset(size_t pos); bitset<N> operator~()constnoexcept; bitset<N>& flip()noexcept; bitset<N>& flip(size_t pos); // element accessconstexprbool operator[](size_t pos)const;// for b[i]; reference operator[](size_t pos);// for b[i]; unsignedlong to_ulong()const;unsignedlonglong to_ullong()const;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; size_t count()constnoexcept;constexpr size_t size()constnoexcept;bool operator==(const bitset<N>& rhs)constnoexcept;bool test(size_t pos)const;bool all()constnoexcept;bool any()constnoexcept;bool none()constnoexcept; bitset<N> operator<<(size_t pos)constnoexcept; bitset<N> operator>>(size_t pos)constnoexcept;}; // hash supporttemplate<class T>struct hash;template<size_t N>struct hash<bitset<N>>;}