C++标准库bitset类型(简单使用方法)

转自此人博客

#include<bister>

using std::bitset;

一句话定义:可自定义位数,用作记录二进制的数据类型.

一,定义和初始化

bitset<n> b;                           //b有n位,每位都为0;

bitset<n> b(u);                       //b是unsigned long型u的副本

bitset<n> b(s);                       //b是string对象s中含有n位字符串的副本

bitset<n> b(s, pos, n);             //b是s中从pos位置开始的n个位置的副本

bitset<n> b(s,pos);                 //b从s的pos位置开始取值到s末尾(注取的值从b的右端开始)

 注:①n定义的位数在初始化时按初始值填充,赋值超出的范围舍去,空余的以零填充.

②bitset从string对象读入位集时按从右到左的顺序.

二,操作

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;                           //返回一个同值得unsigned long值

os << b;                              //把b中位集输出

时间: 2024-10-06 16:07:09

C++标准库bitset类型(简单使用方法)的相关文章

把《c++ primer》读薄(3-3 标准库bitset类型)

督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. //开头 #include <bitset> using std::bitset; 问题1.标准库bitset类型(模版) 需要处理二进制位的时候,可以使用c++标准库提供的bitset类型,它也是类模版,类似vectro容器,唯一不同的是,bitset类型需要说明长度,使用常量表达式给出的整型字面值或者已经初始化的cosnt对象. bitset<32> bit;//从0到31位算的,bit的32位每位初始化为

【C++ Primer每日刷】之三 标准库 string 类型

标准库 string 类型 string 类型支持长度可变的字符串,C++ 标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作.标准库string 类型的目的就是满足对字符串的一般应用. 与其他的标准库类型一样,用户程序要使用 string 类型对象,必须包含相关头文件.如果提供了合适的 using 声明,那么编写出来的程序将会变得简短些: #include <string> using std::string; 1.1 string 对象的定义和初始化 string 标准库支持几个

C++标准库vector类型的使用和操作总结

vector是一种类型对象的集合,它是一种顺序容器,容器中的所有对象必须都是同一种类型.vector的对象是可以动态生长的,这说明它在初始化时可以不用指定大小,而是再使用时根据元素所需的空间动态增长.C++中还有一种常见的类型string,它和vector有很多相似之处,具体可以看<C++标准库string类型的使用和操作总结>这篇博文.下面简单介绍一下vector容器的使用和操作. 一.声明和初始化 使用vector之前必须在程序前的库包含中包含相应的头文件,如下: #include<

标准库string类型用法(一)

标准库string类型 1. string对象的定义与初始化 string s1;                             默认构造函数,s1为空串 string s2(s1);                      将s2初始化为s1的一个副本 string s3("nwpu");            将s3初始化为一个字符串字面值副本 string s4(n, 'b');                 将s4初始化为字符‘b’的n个副本 2. string对

标准库string类型

string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作.标准库string类型的目的就是满足对字符串的一般应用. 本文地址:http://www.cnblogs.com/archimedes/p/cpp-string.html,转载请注明源地址. 引入头文件#include<string> 1.string对象的定义和初始化 string标准库支持几个构造函数,构造函数是一个特殊成员函数 一下是几种初试化string对象的方式 string s

C++标准库 bitset

本文地址:http://www.cnblogs.com/archimedes/p/cpp-bitset.html,转载请注明源地址. 有些程序要处理二进制位的有序集,每个位可能包含 0(关)1(开)值.位是用来保存一组项或条件 的 yes/no 信息(有时也称标志)的简洁方法.标准库提供的 bitset 类简化了位集的处理.要使用 bitset 类就必须包含相关的头文件.在本书提供的例子中,假设都使用 std::bitset 的using声明: #include <bitset> using

标准库function类型的使用

14.44编写一个简单的桌面计算器使其能处理二元运算. #include<iostream> #include<map> #include<functional> #include<string> using namespace std; int add(int a,int b) { return a+b; } struct divide{ int operator()(int denominator,int divisor) { return denomi

标准库functools.wraps的使用方法

首先请看如下代码 # 定义一个最简单的装饰器 def user_login_data(f): def wrapper(*args, **kwargs): return f(*args, **kwargs) return wrapper # 用装饰器装饰以下两个函数 @user_login_data def num1(): print("aaa") @user_login_data def num2(): print("bbbb") if __name__ == '_

C++ Primer 第四版读书笔记(二)之标准库类型

C++定义了一个内容丰富的抽象数据类型标准库,其中最重要的标准库类型是string和vector,它们分别定义了大小可变的字符串和集合.string和vector往往将迭代器用作配套类型,用于访问string中的字符,或者vector中的元素. 另一种标准库类型为bitset,提供了一种抽象方法来操作位的集合. string类型支持长度可变的字符串,vector用于保存一组指定类型的对象. bitset类标准库类型提供了更方便和合理有效的语言级的抽象设施.通过这个类可以把某个值当作位的集合来处理