C++ Primer 学习笔记(五) ---- 第三章 标准库类型(2)

一、知识点
1、命名空间的using声明
2、标准库string类型
3、标准库vector类型
4、迭代器简介
5、标准库bitset类型

二、要点
      
3、标准库vector类型 

初始化vector对象的方式

vector<T> v1

v1保存T类型的对象。采用T的默认构造函数构造

vector<T> v2(v1)

v2v1的一个副本

vector<T> v3(n, i)

v3包含n个值为iT对象元素

vector<T> v4(n)

v4包含初始化的T对象的n个副本

 (1)、注意如果T是没有默认构造函数的类,则在初始化这种类型的vector对象时,不但需要提供元素个数,还需要提供元素初始值。

 (2)、仅能对确知的已存在的元素进行下标操作,而且进行下标操作时,是不能进行添加元素的。

 

      4、迭代器简介
            迭代器是一种检查容器内元素并遍历元素的数据类型。

    
(1)、end操作:end操作返回的迭代器指向vector的“末端元素的下一个”,即指向一个不存在的元素;如果vector是空的,则begin和end是一样的。

     (2)、解引用:迭代器类型可以使用解引用操作符(*操作符)来访问迭代器指向的元素内容。

     (3)、const_iterator:这个类型只能读取容器,不能修改其值;而const的迭代器是在初始化时指向一个vector,它是不能改变它指向的对象,但是可以改变其指向的值。

       5、标准库bitset类型

       bitset类是一种对位集进行处理的类型。

bitset初始化方法

bitset<n> b

bn位,每位都为0

bitset<n> b(u)

bunsigned longu的一个副本

bitset<n> b(s)

bstring对象s中含有的位串的副本

bitset<n> b(s, pos, n)

bs中从pos开始的n个位的副本


      (1)、在定义bitset时,要明确bitset含有多少位,须在尖括号中给出它的长度值。
      
      (2)、用unsigned long初始化bitset对象:该值直接转换为二进制的位模式;如果bitset长度大于unsigned long值的二进制位数,则将其余的高阶位置为0;如果小于,则超过的高阶位被丢弃。

      (3)、用string对象初始化bitset对象:从string对象读入位集的顺序是从右到坐。

      (4)、bitset对象上的操作,如下图

bitset操作

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_long()

b的二进制位中返回一个unsigned long

os << b

b中的位集输出到os


posted on 2012-06-09 21:10 tiger7 阅读(170) 评论(0)  编辑 收藏 引用 所属分类: C++ Primer


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

导航

统计

公告

welcome to tiger's blog.

常用链接

留言簿

文章分类

文章档案

搜索

最新评论