当前位置: 首页 > news >正文

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


http://www.mrgr.cn/news/27028.html

相关文章:

  • 蔚来充换电站数字化运维系统案例分享
  • Linux环境
  • [Linux入门]---使用exec函数实现简易shell
  • Python基础语法(3)上
  • MySQL 表的增删改查
  • 多模态学习
  • 概述03 A/B test
  • 从关键新闻和最新技术看AI行业发展(第三十一期2024.8.26-9.8) |【WeThinkIn老实人报】
  • Linux——进程状态
  • Linux内核编译并移植至ARM平台
  • 跨平台互斥体封装
  • 数据结构:单链表
  • 前端必知必会-响应式网页设计Viewport和GridView
  • 家庭理财管理系统
  • 【极限、数学】 NOIP 2018 提高组初赛试题 第 7 题详解(线段长度期望)
  • 【代码随想录训练营第42期 Day58打卡 - 图论Part8 - 拓扑排序
  • 【免费资料推荐】数据资产管理实践白皮书(6.0版)
  • 每天五分钟玩转深度学习PyTorch:模型参数优化器torch.optim
  • 智能工厂的设计软件 之 语言设计
  • 【Jetson】Jetson Orin NX刷机教程