C++ Primer 第三章 标准库类型 笔记 (二)

2014-11-24 12:43:46 · 作者: · 浏览: 2
set含有多少位,须在尖括号内给出长度值:

bitset<32>bitvec; //bitvec被定义为含有32位的bitset对象

初始化bitset对象的方法

bitsetb; //对象b有n为位,每位为0

bitset b(u); //b是unsignedlong型u的一个副本

bitset b(s); //b是string对象s中含有位串的副本

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

-当用unsigned long值作为bitset对象的初始值时,该值将转化为二进制的位模式。

十六进制值0xffff表示为二进制位就是十六个1和十六个0

//bitvec1 的长度小于初始化值

bitset<16>bitvec1(0xffff); //0~15位被设置为1

//bitvec2的长度和unsigned long相同

bitset<32>bitvec2(0xffff); //0~15位设置为1,1~31位设置为0

//bitset3的长度大于usigned long

bitset<128>bitvec3(0xffff); //位32到127被初始化为0

当用string对象初始化bitset对象时,string对象直接表示为为模式。从string对象读入位集的顺序是从右向左:

string strval(“1100”);

bitset<32>bitvec4(strval);

//bitvec4的位模式中第2和3位置为1,其余位置都为0.

-注解:string对象和bitset对象之间是反向转化:string对象的最右边字符用来初始化bitset对象的低阶位。

bitset对象上的操作

-用来测试或设置bitset对象中的单个或多个二进制位。

-count操作的返回类型是标准库中命名为size_t的类型

-bitset的size操作返回bitset对象中二进制位的个数,返回值是size_t的类型

-具体操作内容易理解就不做太多摘录

总结:本章介绍了三种标准库类型,一个是string类型、vector类型和bitset类型,这三种类型有很多类似之处,我觉得只要理解了其中的一种类型的基本概念和具体操作,然后对三种类型进行联系,也许就不会混淆,这一章简单简介了容器和迭代器,我对它们有了一定的了解,C++发展的趋势就是不断人性化,学习以最简洁最易理解的方式来编写程序,不断简化程序,减少代码的编辑量,我想自己走的就是这样的方向

摘自:wwj的梦想之路