C++迭代器的实现原理及Java介绍
发布时间
阅读量:
阅读量
前言
只用过C++的容器的人都不陌生于迭代器的概念。它不仅提供了一种统一的接口方式来访问相应的数据存储结构(例如数组、链表、map等),而且这种设计使得代码更加简洁和易于维护。
例子1 :迭代器的遍历
利用迭代器遍历数组vector
vector<int> vi{ 1, 3, 5, 7, 9 };
for(auto it = vi.begin(); it != vi.end(); ++it) {
cout<<*it<<endl;
}
利用迭代器遍历链表list
list<int> li{ 2, 4, 6, 8, 10 };
for(auto it = li.begin(); it != li.end(); ++it) {
cout<<*it<<endl;
}
大家可以看到,在代码两端仅在将vector替换为list(仅出于命名的不同),其余遍历代码并未发生任何更改的情况下即可轻松实现底层存储结构从数组到链表的转变。是不是非常棒?
例子2 :一个算法的例子,将当前迭代器向前移动off个单位
算法原型:
advance函数:它接收一个迭代器参数,以及一个偏移量_Off,表示将当前的迭代器向前移动_Off个长度(
全部评论 (0)
还没有任何评论哟~
