C++-Referenz/ Standardbibliothek/ Container-Klassen/ bitset
Alte Seite
Die Arbeit am Buch »C++-Referenz« wurde vom Hauptautor eingestellt. Ein Lehrbuch zum Thema C++ ist unter »C++-Programmierung« zu finden. Eine sehr umfangreiche und gute Referenz gibt es unter cppreference.com.
Diese Seite beschreibt C++98, einen stark veralteten Standard. Aktuelle Referenz.
// Header: bitset
#include <cstddef> // für size_t
#include <string> // für basic_string
#include <stdexcept> // für invalid_argument, out_of_range, overflow_error
#include <iosfwd> // für istream, ostream
template<size_t N> class bitset{
public:
// Bit-Referenz:
class reference{
public:
reference& operator=(bool x); // für b[i] = x;
reference& operator=(reference const&); // für b[i] = b[j];
operator bool()const; // für x = b[i];
bool operator~()const; // Bits negieren
reference& flip(); // für b[i].flip();
~reference();
private:
reference();
friend class bitset;
};
// Konstruktor
bitset();
bitset(unsigned long val);
template<typename charT, typename traits, typename Allocator> explicit bitset(
basic_string<charT,traits,Allocator> const& 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
);
// bitset-Operationen
bitset<N>& operator&=(bitset<N> const& rhs);
bitset<N>& operator|=(bitset<N> const& rhs);
bitset<N>& operator^=(bitset<N> const& rhs);
bitset<N>& operator<<=(size_t pos);
bitset<N>& operator>>=(size_t pos);
bitset<N>& set();
bitset<N>& set(size_t pos, int val = true);
bitset<N>& reset();
bitset<N>& reset(size_t pos);
bitset<N> operator~()const;
bitset<N>& flip();
bitset<N>& flip(size_t pos);
// Elementzugriff
reference operator[](size_t pos);
unsigned long to_ulong()const;
template <typename charT, typename traits, typename Allocator>
basic_string<charT, traits, Allocator> to_string()const;
size_t count()const;
size_t size()const;
bool operator==(bitset<N> const& rhs)const;
bool operator!=(bitset<N> const& rhs)const;
bool test(size_t pos)const;
bool any()const;
bool none()const;
bitset<N> operator<<(size_t pos)const;
bitset<N> operator>>(size_t pos)const;
};
// bitset-Operationen
template <size_t N> bitset<N> operator&(bitset<N> const&, bitset<N> const&);
template <size_t N> bitset<N> operator|(bitset<N> const&, bitset<N> const&);
template <size_t N> bitset<N> operator^(bitset<N> const&, bitset<N> const&);
template <typename charT, typename traits, size_t N>
basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& is, bitset<N>& x);
template <typename charT, typename traits, size_t N>
basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& os, bitset<N> const& x);