2015-team4/bitset

从 Trac 迁移的文章

这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。

原文章内容如下:

{{{
bitset类支持位操作符, ~, ^, |, &, &=, |=等

bitset<n> b;
 b有n位,每位都为0.参数n可以为一个表达式.
 如bitset<5> b0;则"b0"为"00000";

bitset<n> b(unsigned long u);
 b有n位,并用u赋值;如果u超过n位,则顶端被截除
 如:bitset<5>b0(5);则"b0"为"00101";

bitset<n> b(string s);
 b是string对象s中含有的位串的副本
 string bitval("10011");
 bitset<5> b0(bitval4);
 则"b0"为"10011";


bitset<n> b(s, pos);
 b是s中从位置pos开始位的副本,前面的多余位自动填充0;
 string bitval("01011010");
 bitset<10> b0(bitval, 3);
 则"b0" 为 "0000011010";

bitset<n> b(s, pos, num);
 b是s中从位置pos开始的num个位的副本,如果num<n,则前面的空位自动填充0;
 string bitval("11110011011");
 bitset<6> b0(bitval, 3, 6);
 则"b0" 为 "100110";

b.any()
 b中是否存在置为1的二进制位?

b.none()
 b中不存在置为1的二进制位吗?

b.count()
 b中置为1的二进制位的个数

b.size()
 b中二进制位的个数

b[pos]
 访问b中在pos处的二进制位

b.test(pos)
 b中在pos处的二进制位是否为1?

b.set()
 把b中所有二进制位都置为1

b.set(pos)
 把b中在pos处的二进制位置为1

b.reset()
 把b中所有二进制位都置为0

b.reset(pos)
 把b中在pos处的二进制位置为0

b.flip()
 把b中所有二进制位逐位取反

b.flip(pos)
 把b中在pos处的二进制位取反

b.to_ulong()
 用b中同样的二进制位返回一个unsigned long值

b.to_string()
 返回对应的字符串.

os << b
 把b中的位集输出到os流

os >>b
输入到b中,如"cin>>b",如果输入的不是0或1的字符,只取该字符前面的二进制位.

c++11:
b.all()
 b中二进制位都是1吗?
b.to_ullong()
 用b中同样的二进制位返回一个unsigned long long值
}}}
bitset类支持位操作符, ~, ^, |, &, &=, |=等
bitset<n> b;
 b有n位,每位都为0.参数n可以为一个表达式.
 如bitset<5> b0;则"b0"为"00000";
bitset<n> b(unsigned long u);
 b有n位,并用u赋值;如果u超过n位,则顶端被截除
 如:bitset<5>b0(5);则"b0"为"00101";
bitset<n> b(string s);
 b是string对象s中含有的位串的副本
 string bitval("10011");
 bitset<5> b0(bitval4);
 则"b0"为"10011";
bitset<n> b(s, pos);
 b是s中从位置pos开始位的副本,前面的多余位自动填充0;
 string bitval("01011010");
 bitset<10> b0(bitval, 3);
 则"b0" 为 "0000011010";
bitset<n> b(s, pos, num);
 b是s中从位置pos开始的num个位的副本,如果num<n,则前面的空位自动填充0;
 string bitval("11110011011");
 bitset<6> b0(bitval, 3, 6);
 则"b0" 为 "100110";
b.any()
 b中是否存在置为1的二进制位?
b.none()
 b中不存在置为1的二进制位吗?
b.count()
 b中置为1的二进制位的个数
b.size()
 b中二进制位的个数
b[pos]
 访问b中在pos处的二进制位
b.test(pos)
 b中在pos处的二进制位是否为1?
b.set()
 把b中所有二进制位都置为1
b.set(pos)
 把b中在pos处的二进制位置为1
b.reset()
 把b中所有二进制位都置为0
b.reset(pos)
 把b中在pos处的二进制位置为0
b.flip()
 把b中所有二进制位逐位取反
b.flip(pos)
 把b中在pos处的二进制位取反
b.to_ulong()
 用b中同样的二进制位返回一个unsigned long值
b.to_string()
 返回对应的字符串.
os << b
 把b中的位集输出到os流
os >>b
输入到b中,如"cin>>b",如果输入的不是0或1的字符,只取该字符前面的二进制位.
c++11:
b.all()
 b中二进制位都是1吗?
b.to_ullong()
 用b中同样的二进制位返回一个unsigned long long值