【C++知识扫盲】-----初识迭代器

1. 迭代器的基本概念

迭代器是一种抽象的指针类型,它使得你可以遍历容器中的元素而不需要知道容器的具体实现细节。迭代器可以用来访问容器中的元素、移动位置、比较位置等。

2. 迭代器的类型

输入迭代器(Input Iterator):只能向前遍历一次容器中的元素。
输出迭代器(Output Iterator):只能向前遍历并修改容器中的元素。
前向迭代器(Forward Iterator):可以多次遍历容器中的元素,并且只能向前遍历。
双向迭代器(Bidirectional Iterator):可以向前和向后遍历容器中的元素。
随机访问迭代器(Random Access Iterator):除了支持前向和双向遍历外,还支持任意位置的直接访问和跳跃。

3. 常用的迭代器操作

3.1. 创建迭代器

迭代器通常通过容器提供的成员函数来获得。例如:

std::vector<int> vec = {1, 2, 3, 4, 5};
std::vector<int>::iterator it = vec.begin();

3.2. 访问元素

可以使用迭代器来访问容器中的元素:

int value = *it;  // 访问当前迭代器指向的元素

3.3. 移动迭代器

迭代器可以像指针一样进行递增或递减操作:

++it;     // 向前移动
--it;     // 向后移动
it += 3;  // 向前移动3个位置
it -= 2;  // 向后移动2个位置

3.4. 比较迭代器

可以比较两个迭代器是否相等或不相等:

if (it == vec.end()) 
{
    // 迭代器到达容器末尾
}

3.5. 迭代器的应用

迭代器可以与算法库中的函数一起使用,如std::sort、std::find等:

std::sort(vec.begin(), vec.end());  // 使用迭代器对容器进行排序
auto it = std::find(vec.begin(), vec.end(), 3);  // 查找元素3

5. 例子

下面是一个使用迭代器遍历std::vector的例子:

#include <iostream>
#include <vector>

int main() 
{
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 使用迭代器遍历
    for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) 
    {
        std::cout << *it << ' ';
    }
    std::cout << std::endl;

    return 0;
}

在这里插入图片描述

在这个例子中,我们使用迭代器从vec.begin()开始遍历,直到vec.end()。每次递增迭代器,*it就访问容器中的下一个元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值