当前位置: 首页> 健康> 养生 > 【C++知识扫盲】-----初识迭代器

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

时间:2025/7/14 3:50:30来源:https://blog.csdn.net/2401_82676816/article/details/142267133 浏览次数:0次

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就访问容器中的下一个元素。

关键字:【C++知识扫盲】-----初识迭代器

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: