| 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(公众成员函数) |