【C++】《C++标准程序库》小结第十章-特殊容器

(一)stack堆栈

a)       LIFO后进先出。一般只有三个接口有用:pop(), push(), top()。

b)       可以自己制作一个,一般封装deque,原因是deque释放元素就直接释放了内存,符合堆栈特性。

 

(二)queue队列

a)       FIFO先进先出。核心接口:push(), pop(), front(), back()。

b)       一般封装deque,理由同上。

 

(三)priority queue优先队列

a)       核心接口:push(), pop(), top()。

b)       一般封装vector,原因是采用heap算法。用deque也行。

 

(四)bitset

a)       一个内含位(bit)的固定大小的array容器。适用于管理标志(flag)。速度一般并不是非常高效。

b)       可以方便的在数与二进制编码之间转化:

cout <<bitset<numeric_limits<unsigned long >::digits >(267);

cout << bitset<100>(string(“1000101011”)).to_ulong();

关于数值极限,请参考第四章。

c) bitset的初始化方式:

bitset( value );

bitset(const string&, str_idx);

bitset(const string&, str_idx,str_num);

string 里只能是包含0和1的字符串。

str_idx   是字符串的位置

str_num 是转化多少个位

d) 特殊操作

函数名

作用

count()

位值为1 的个数

any()

只要有1就为真

none()

都为0就是真

test(idx)

判断位是否为1

set()

全部设为1

set(idx)

设某位为1

set(idx,value)

设某位的值

reset

全为0

reset(idx)

某位设为0

flip

翻转所有位

flip(idx)

翻转某一位

^= |= &=

自己看

<<=

左移动,空白填0

>>=

右移动,空白填0

~bitset

返回翻转值

bitset << num

返回左移动num位的值

bitset >> num

返回右移动num位的值

& | ^ bitset

自己看

 

 

可以使用标准IO库来输入输出,比如cin >> bitset; cout << bitset;

只能是包含0和1的字符串。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值