博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
forward_list学习之迭代器操作before_begin,cbefore_begin,begin,cbegin,end,cend
阅读量:2193 次
发布时间:2019-05-02

本文共 1728 字,大约阅读时间需要 5 分钟。

本篇学习forward_list的迭代器操作:

before_begin:返回指向第一个元素之前迭代器

cbefore_begin:返回指向第一个元素之前常量迭代器

begin:返回指向起始的迭代器

cbegin:返回指向起始的常迭代器

end:返回指向末尾的迭代器

cend:返回指向末尾的常量迭代器

代码实现

#include 
#include
using namespace std;void getIterator(){ forward_list
list1 = {12, 32, 34 ,53, 56, 76, 78}; //1.before_begin返回指向第一个元素之前的迭代器 forward_list
::iterator before_begin = list1.before_begin();//可以用auto cout << " before_begin = " << *(std::next(before_begin)) << endl; //2.cbefore_begin返回指向第一个元素之前的常量迭代器 forward_list
::const_iterator cbefore_begin = list1.cbefore_begin(); cout << " cbefore_begin = " << *(std::next(cbefore_begin)) << endl; //3.begin返回指向起始的迭代器 forward_list
::iterator begin = list1.begin();//可以用auto cout << " begin = " << *begin << endl; //4.cbegin返回指向起始的迭代器 forward_list
::const_iterator cbegin = list1.cbegin();//可以用auto cout << " cbegin = " << *cbegin << endl; *begin = 50; cout << " begin = " << *begin << endl; //*cbegin = 60;//常量迭代器不能修改 //5.end返回指向末尾的迭代器 forward_list
::iterator end = list1.end();//可以用auto auto st1 = list1.begin(); int a = 5; cout << " list1的值为: "; while (st1 != end) { cout << *st1 << "\t"; *st1 = *st1 + a; ++st1; } cout << endl; //6.cend返回指向末尾的常量迭代器 forward_list
::const_iterator cend = list1.cend();//可以用auto auto st2 = list1.cbegin(); int a2 = 7; cout << " list1的值为: "; while (st2 != cend) { cout << *st2 << "\t"; //*st2 = *st2 + a2;//常量不能赋值 ++st2; } cout << endl; } int main(){ getIterator(); cout << endl; cout << " Hello World!" << endl; return 0;}

运行结果:

注意:forward_list的迭代器都不支持自减操作

参考:

转载地址:http://ubiub.baihongyu.com/

你可能感兴趣的文章
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
深入理解JVM虚拟机9:JVM监控工具与诊断实践
查看>>
深入理解JVM虚拟机10:JVM常用参数以及调优实践
查看>>
深入理解JVM虚拟机11:Java内存异常原理与实践
查看>>
深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
查看>>
深入理解JVM虚拟机13:再谈四种引用及GC实践
查看>>
Spring源码剖析1:Spring概述
查看>>
Spring源码剖析2:初探Spring IOC核心流程
查看>>
Spring源码剖析3:Spring IOC容器的加载过程
查看>>
Spring源码剖析4:懒加载的单例Bean获取过程分析
查看>>
Spring源码剖析5:JDK和cglib动态代理原理详解
查看>>
Spring源码剖析6:Spring AOP概述
查看>>
Spring源码剖析7:AOP实现原理详解
查看>>
Spring源码剖析8:Spring事务概述
查看>>
Spring源码剖析9:Spring事务源码剖析
查看>>