C++98; | member functions | bitset& operator&= (const bitset& rhs); bitset& operator|= (const bitset& rhs); bitset& operator^= (const bitset& rhs); bitset& operator<<= (size_t pos); bitset& operator>>= (size_t pos); bitset operator~() const; bitset operator<<(size_t pos) const; bitset operator>>(size_t pos) const; bool operator== (const bitset& rhs) const; bool operator!= (const bitset& rhs) const; |
non-member functions | template<size_t N> bitset<N> operator& (const bitset<N>& lhs, const bitset<N>& rhs); template<size_t N> bitset<N> operator| (const bitset<N>& lhs, const bitset<N>& rhs); template<size_t N> bitset<N> operator^ (const bitset<N>& lhs, const bitset<N>& rhs); |
|
iostream inserters/extractors | template<class charT, class traits, size_t N> basic_istream<charT, traits>& operator>> (basic_istream<charT,traits>& is, bitset<N>& rhs); template<class charT, class traits, size_t N> basic_ostream<charT, traits>& operator<< (basic_ostream<charT,traits>& os, const bitset<N>& rhs); |
C++11; | member functions | bitset& operator&= (const bitset& rhs) noexcept; bitset& operator|= (const bitset& rhs) noexcept; bitset& operator^= (const bitset& rhs) noexcept; bitset& operator<<= (size_t pos) noexcept; bitset& operator>>= (size_t pos) noexcept; bitset operator~() const noexcept; bitset operator<<(size_t pos) const noexcept; bitset operator>>(size_t pos) const noexcept; bool operator== (const bitset& rhs) const noexcept; bool operator!= (const bitset& rhs) const noexcept; |
non-member functions | template<size_t N> bitset<N> operator& (const bitset<N>& lhs, const bitset<N>& rhs) noexcept; template<size_t N> bitset<N> operator| (const bitset<N>& lhs, const bitset<N>& rhs) noexcept; template<size_t N> bitset<N> operator^ (const bitset<N>& lhs, const bitset<N>& rhs) noexcept; |
|
iostream inserters/extractors | template<class charT, class traits, size_t N> basic_istream<charT, traits>& operator>> (basic_istream<charT,traits>& is, bitset<N>& rhs); template<class charT, class traits, size_t N> basic_ostream<charT, traits>& operator<< (basic_ostream<charT,traits>& os, const bitset<N>& rhs); |
// bitset operators #include <iostream> // std::cout #include <string> // std::string #include <bitset> // std::bitset int main () { std::bitset<4> foo (std::string("1001")); std::bitset<4> bar (std::string("0011")); std::cout << (foo^=bar) << '\n'; // 1010 (XOR,assign) std::cout << (foo&=bar) << '\n'; // 0010 (AND,assign) std::cout << (foo|=bar) << '\n'; // 0011 (OR,assign) std::cout << (foo<<=2) << '\n'; // 1100 (SHL,assign) std::cout << (foo>>=1) << '\n'; // 0110 (SHR,assign) std::cout << (~bar) << '\n'; // 1100 (NOT) std::cout << (bar<<1) << '\n'; // 0110 (SHL) std::cout << (bar>>1) << '\n'; // 0001 (SHR) std::cout << (foo==bar) << '\n'; // false (0110==0011) std::cout << (foo!=bar) << '\n'; // true (0110!=0011) std::cout << (foo&bar) << '\n'; // 0010 std::cout << (foo|bar) << '\n'; // 0111 std::cout << (foo^bar) << '\n'; // 0101 return 0; } |
bitset::set | 设置比特位 (函数模板) |
bitset::reset | 重置比特位(公众成员函数) |
bitset::operator[] | 访问比特位(公众成员函数) |
flip | 反转bit(公众成员函数) |