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

来源:互联网 发布:ip修改软件 编辑:程序博客网 时间:2024/05/03 23:01

单个字符的处理函数

 

vector对象的定义和初始化

vector对象的操作

迭代器简介

每个容器都有自己的迭代器类型(iterator),如vector:

vector<int>::iterator iter

begin和and操作

begin:返回迭代器指向的第一个元素

end:返回迭代器指向的最后一个元素的下一个元素

迭代器可以进行自增和解引用运算.

例:

vector<int> ivec(10,8);

for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();iter++)

   *iter=0;

const_iterator:只可以访问其元素,不能修改元素的值

例:

for(vector<int>::const_iterator iter=ivec.begin();iter!=ivec.end();iter++)

   *iter=0;  //错误 iter是const_iterator类型 因此不能修改元素的值

const迭代器和const_iterator的区别:

const迭代器:可以修改所访问元素的值,不过不能指向其他元素.并且声明一个const迭代器时必须初始化.

const_iterator:只可以访问其元素,可以指向其他元素,但不能修改元素的值

 

迭代器的算术操作

例:iter+n iter-n iter1-iter2 返回size_type类型的值

 

bitset类型

bitset类可以用来简化位集的处理.要使用bitset类必须包含头文件#include<bitset>

 

bitset对象的定义和初始化

例:

bitset<32> bitvec //含有32位且为0,位集合中的元素只从编号0开始的位置访问.以0开始的是低阶位,以31位结束的是高阶位.

用unsigned值初始化bitset对象:当用unsigned值作为bitset对象的初始值时,该值将转换为2进制。如果bitset类型长度大于unsigned值的二进制位数,则空出来的高阶位为0反之小于的话,超出高阶位的将被舍弃.

用string对象初始化bitset对象:从string对象中读入位集的顺序是从右向左

                                                         不一定需要把整个string对象作为bitset对象的初始值

例:

string str("1111111000000000000111");

bitset<32> bitvec5(str,5,4);    //从str[5]开始往后推4位读取 1100

bitset<32> bitvec6(str,str.size()-4) //读取最后四个

 

bitset对象的操作

bitset对象的操作符

获取bitset对象中的位值可以通过下标来访问.