本文共 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/