STL容器之bitset

简介: STL容器之bitset

简单介绍

bitset,通常用来存储的数据是二进制,所以后面涉及一些位运算或者是二进制的时候,使用bitset容器会比较方便。

使用的时候,仍然需要包含bitset的头文件

使用

bitset的容器的创建跟其他容器有点区别

<位数>, 其他容器中<>,写的是数据类型

注意: 在bitset容器中这里写的是位数

一般情况,类型传字符串就行

#include<iostream>
#include<bitset>
#include<string>
using namespace std;
int main()
{
  bitset<2> bi("11");  // 2 代表位数, 一般可传字符串类型
  cout << bi << endl;
  bitset<4> bit("11"); 
  cout << bit << endl; //如果位数不够,用0补齐(在前面补齐)
  cout << bit.flip() << endl;  // 全部取反 按位取反, 0变成1, 1变成0
  cout << bit.flip(0) << endl;  //将 0 + 1 位取反 
  cout << bit.all() << endl;    //返回是否有0
  cout << bit.any() << endl;   //返回是否有1
  cout << bit.none() << endl;  //返回是否没有1
  cout << bit.count() << endl; //计算1的个数
  return 0; 
}

>当然 bitset容器,支持所有的位运算,用bitset会让你的算法复杂度,下降很多,一般可以使用于优化奇偶性相关的问题,或者判断联通性之类的,(也可以在搜索的时候,优化访问标记)


相关文章
|
1月前
|
存储 搜索推荐 C++
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器2
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器
48 2
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器2
|
1月前
|
存储 C++ 容器
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器1
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器
52 5
|
1月前
|
存储 编译器 C++
【C++篇】揭开 C++ STL list 容器的神秘面纱:从底层设计到高效应用的全景解析(附源码)
【C++篇】揭开 C++ STL list 容器的神秘面纱:从底层设计到高效应用的全景解析(附源码)
53 2
|
3月前
|
安全 编译器 容器
C++STL容器和智能指针
C++STL容器和智能指针
|
4月前
|
存储 算法 C语言
【C++】详解STL的适配器容器之一:优先级队列 priority_queue
【C++】详解STL的适配器容器之一:优先级队列 priority_queue
|
4月前
|
设计模式 存储 缓存
【C++】详解STL容器之一的deque和适配器stack,queue
【C++】详解STL容器之一的deque和适配器stack,queue
|
4月前
|
存储 算法 C++
【C++】详解STL容器之一的 vector
【C++】详解STL容器之一的 vector
|
4月前
|
算法 C语言 C++
【C++】详解STL的容器之一:list
【C++】详解STL的容器之一:list
|
5月前
|
C++ 容器
C++ STL标准库 《map容器详解》
C++ STL标准库 《map容器详解》
44 0
|
5月前
|
存储 C++ 容器
C++ STL标准库 《map容器详解》
C++ STL标准库 《map容器详解》
72 0