码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-07-23 23:45:30      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:c++   stl   c++ primer   标准模板库   

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

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

 技术分享
使用bitset需要声明头文件”#include <bitset>”
 技术分享

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++ Primer 学习笔记_14_标准模板库_bitset位集合容器

标签:c++   stl   c++ primer   标准模板库   

原文地址:http://blog.csdn.net/keyyuanxin/article/details/47030625

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!