C++学习笔记——迭代器

一、定义

    迭代器是面向对象版本的指针,它提供了访问容器和序列中每个元素的方法,可以利用迭代器对存储在容器中的元素进行遍历。

二、分类

1、输入(input):读取数据
2、输出(output):写入数据
3、前向(forward):读/写数据,并可对序列进行单向的遍历。
4、双向(bidirectional):读/写数据,并可对序列进行双向的遍历。
5、访问随机(random access):读/写数据,并可对序列进行双向的遍历,还能在序列中的任意两个位置上进行跳转。

三、使用

    迭代器在头文件iterator中声明。
    vector和deque容器支持随机访问,list、set、multiset、map和multimap容器支持双向访问。

预定义迭代器
预定义迭代器++操作的方向功能
iterator向前读/写
const_iterator向前
reverse_iterator向后读/写
const_reverse_iterator向后
举个栗子:
#include <iostream>
#include <list>
#include <iterator>

using namespace std;

int main()
{
    list<int> nums; // 双向链表,长度为0
    list<int>::const_iterator p;    // 整形双向链表的顺序迭代子
    list<int>::const_reverse_iterator q; // 整形双向链表的逆序迭代子

    nums.insert(nums.begin(), 1);   // 设置初始值
    nums.insert(nums.begin(), 10);
    nums.insert(nums.begin(), 100);

    cout << "链表中的所有元素为:" << endl;
    for (p = nums.begin(); p != nums.end(); p++)
        cout << *p << " ";
    cout << endl;

    cout << "逆序打印:" << endl;
    q = nums.rbegin();  // 逆序迭代
    while (q != nums.rend())    // 不指向第一个元素
    {
        cout << *q << " ";
        q++;
    }

    return 0;
}
运行结果:
链表中的所有元素为:
100 10 1
逆序打印:
1 10 100
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值