C++ Primer 学习笔记_14_标准模板库_bitset位集合容器

C++ Primer 学习笔记_14_标准模板库_bitset位集合容器

bitset容器是一个bit位元素的序列容器,每个元素只占一个bit位,取值为0或1,因而很节省内存空间。下图是一个bitset的存储示意图,它的10个元素只使用了两个字节的空间。

 C++ Primer 学习笔记_14_标准模板库_bitset位集合容器_第1张图片
使用bitset需要声明头文件”#include <bitset>”
 C++ Primer 学习笔记_14_标准模板库_bitset位集合容器_第2张图片

1、创建bitset对象
创建bitset对象时,必须要指定容器的大小。bitset对象的大小一经定义,就不能修改了。下面这条语句就定义了bitset对象b,它能容纳100个元素,即100个bit(位),此时,所有元素的值都为0。
bitset<100> b


2、设置元素值
(1)采用下标法
#include <bitset>
#include <iostream>
using namespace std;


int main()
{
    bitset<10> b;
    b[1] = 1;
    b[6] = 1;
    b[9] = 1;
    for(int i = b.size() - 1; i >= 0; i--)
        cout << b[i];
    cout << endl;
    return 0;
}
运行结果:
1001000010

(2)采用set()方法,一次性将元素设置为1
#include <bitset>
#include <iostream>
using namespace std;

int main()
{
    bitset<10> b;
    b.set();
    for(int i = b.size() - 1; i >= 0; i--)
        cout << b[i];
    cout << endl;
    return 0;
}
运行结果:
1111111111

(3)采用set(pos)方法,将某pos位设置为1
#include <bitset>
#include <iostream>
using namespace std;

int main()
{
    bitset<10> b;
    b.set(1, 1);
    b.set(6, 0);
    b.set(9, 1);
    for(int i = b.size() - 1; i >= 0; i--)
    {
        cout << b[i];
    }
    cout << endl;
    return 0;
}
运行结果:
1000000010

(4)采用reset(pos)方法,将某pos位设置为0
#include <bitset>
#include <iostream>
using namespace std;

int main()
{
    bitset<10> b;
    b.set();
    b.reset(0);
    b.reset(5);
    for(int i = b.size() - 1; i >= 0; i--)
    {
        cout << b[i];
    }
    cout << endl;
    return 0;
}
运行结果:
1111011110


3、输出元素
(1)采用下标方法输出元素
如上述代码

(2)直接向输出流输出全部元素
#include <bitset>
#include <iostream>
using namespace std;

int main()
{
    bitset<10> b;
    b.set();
    b.reset(0);
    b.reset(5);
    cout << b << endl;
    return 0;
}
运行结果:
1111011110

你可能感兴趣的:(C++,C++,STL,Primer,标准模板库)