来一发bitset介绍,主要是程序输出看一下结果
bit.set()全初始化成1
bit.reset()全初始化成0
bit.test()测试是否存在
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<bitset>
using namespace std;
const int N=100;
int main()
{
//---------------------------------------------------------
/*in:4 5
1 2
1 3
1 4
2 3
3 4*/
bitset<N>bit[N];
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
int u,v;
scanf("%d%d",&u,&v);
bit[u].set(v);
}
for(int j=1;j<=n;j++)
{
for(int i=1;i<=n;i++)
{
cout<<bit[i].test(j)<<" ";
}
cout<<endl;
}
/*
out:
0 0 0 0
1 0 0 0
1 1 0 0
1 0 1 0
*/
//----------------------------------------------------------
bitset<4>s;
s.set();
cout<<s<<endl;
//out:1111
//-----------------------------------------------------------
s.reset();
cout<<s<<endl;
//out:0000
//-----------------------------------------------------------
s.set(2);
cout<<s<<endl;
//out:0100
s.set(0);
cout<<s<<endl;
//out:0101
//------------------------------------------------------------
s.count();
cout<<s.count()<<endl;
//out:2
//------------------------------------------------------------
bitset<32>str(0x3ffff);
cout<<str<<endl;
for(int i=0;i<str.size();i++)
cout<<str[i];
cout<<endl;
/*out:00000000000000111111111111111111
11111111111111111100000000000000*/
//-------------------------------------------------------------
string ss("10101");
bitset<8>st(ss);
cout<<st<<endl;
for(int i=0;i<st.size();i++)
cout<<st[i];
cout<<endl;
/*out:00010101
10101000*/
}