11.2选代子类 1.反转型迭代子( reverse iterator)把一切都颠倒过来 vector<int> veco; vector<int>: :reverse iterator iter for( r iter= veco. begin(;//将 r iter指向到末元素 r iter!= veco rend oi//不等于首元素的前导 r iter++){//实际是上是递减 /循环体 如果要把升序的序列改为降序的序列,只要使用反转迭代子就 可以了。反转迭代子定义为随机迭代子
11.2 迭代子类 1.反转型迭代子(reverse iterator)把一切都颠倒过来 vector<int> veco; vector<int>::reverse_iterator r_iter; for(r_iter=veco.rbegin();//将r_iter指向到末元素 r_iter!=veco.rend();//不等于首元素的前导 r_iter++){//实际是上是递减 //循环体 } 如果要把升序的序列改为降序的序列,只要使用反转迭代子就 可以了。反转迭代子定义为随机迭代子
DU 11.2选代子类 2.插入型迭代子( insertion iterator):可以用输出迭代子来产生一个元素序列 可以添加元素而不必重写。有三种插入迭代子 back insert iterator<Type>是输出迭代子,用来将产生的元素添加到类型为 Type的容器对象的末端。就象在一个字符串末尾加一个串( strcat( front insert iterator<Type>是输出迭代子,用来将产生的元素添加到容器的 前端,就是,产生出来的元素以逆序方式结束于被控序列前端。 insert iterator< Type,Iter>也是输出迭代子,它用来将产生的元素插入到一个 由迭代子(第二个参数Iter)指定的元素的前面。与之对应的也有三个相关的适配器 函数,它们返回特定的插入迭代子 back inserter(Type&):它使用容器的 push back(插入操作代替赋值操作符, 实参是容器自己。返回一个 back inserter迭代子。 front insertor(Type&α):使用容器的 push_front(插入操作代替赋值操作符, 实参也是容器本身。返回一个 front inserter迭代子 inserter(Type&,rter):用容器的 insert(插入操作符代替赋值操作符 inserter(要求两个实参:容器本身和它的一个迭代子指示起始插入的位置。标记起 始插入位置的迭代子并不保持不变,而是随每个被插入的元素而递增,这样每个元素 就能顺序被插入
11.2 迭代子类 2.插入型迭代子(insertion iterator):可以用输出迭代子来产生一个元素序列。 可以添加元素而不必重写。有三种插入迭代子: back_insert_iterator<Type>是输出迭代子,用来将产生的元素添加到类型为 Type的容器对象的末端。就象在一个字符串末尾加一个串(strcat())。 front_insert_iterator<Type>是输出迭代子,用来将产生的元素添加到容器的 前端,就是,产生出来的元素以逆序方式结束于被控序列前端。 insert_iterator<Type,Iter>也是输出迭代子,它用来将产生的元素插入到一个 由迭代子(第二个参数Iter)指定的元素的前面。 与之对应的也有三个相关的适配器 函数,它们返回特定的插入迭代子: back_inserter(Type&):它使用容器的push_back()插入操作代替赋值操作符, 实参是容器自己。返回一个back_inserter迭代子。 front_insertor(Type&):使用容器的push_front()插入操作代替赋值操作符, 实参也是容器本身。返回一个front_inserter迭代子。 inserter(Type&,Iter):用容器的insert()插入操作符代替赋值操作符。 inserter()要求两个实参:容器本身和它的一个迭代子指示起始插入的位置。标记起 始插入位置的迭代子并不保持不变,而是随每个被插入的元素而递增,这样每个元素 就能顺序被插入