单个字符的处理函数
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对象中的位值可以通过下标来访问.