C++之STL(四)

1、迭代器

通过重载*、->、++、--等运算符来支持指针操作。

迭代器是容器与算法的桥梁。

2、迭代器的类型

个人理解,迭代器是一个模板类,会根据你传入的类型,生成对应的类型。这个模板类里面存放这该类型的指针,里面重载了*、!=、++等操作,当你调用begin()的时候,会将该容器中的first地址传递给这个指针,后面就是通过这个指针去进行操作。

适配器是指,类型作为模板的参数传递进去,利用现有容器,来构造成一个新的容器。

迭代器是iterator继承自const_iterator,这样就不属于适配器(因为继承的方式,就不那么适配)

反向迭代器:是以适配器的方式来实现的,是一个类模板,参数为迭代器,这就可以把正向迭代器传进去来实现,因为逻辑差不多,只不过是指针指向的位置不一样。

#include <iostream>
#include <vector>

int main() {
    vector<int> v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);

    vector<int>::iterator it;
    for(it = v.begin(); it != v.end(); ++it)
    {
        cout << *it << ' ';
    }
    cout << endl;

    vector<int>::reverse_iterator ri;
    for(ri = v.rbegin(); ri != v.rend(); ++ri)
    {
        cout << *ri << ' ';
    }
    cout << endl;
    return 0;
}
// 输出
1 2 3
3 2 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值