c++stl——迭代器

1、概念

是 C++ 中用于遍历容器(如vector、set、map)中元素的一种工具。它类似于指针,提供了访问和操作容器元素的能力。

2、作用

  • 可以遍历容器中的元素。

  • 可以访问容器中的元素。

  • 可以修改容器中的元素

3、分类

  • 输入迭代器:只能读取元素,单向移动。

  • 输出迭代器:只能写入元素,单向移动。

  • 前向迭代器:可以读取和写入元素,单向移动。

  • 双向迭代器:可以读取和写入元素,双向移动(如list)。

  • 随机访问迭代器:可以读取和写入元素,支持随机访问(如vector)。

4、常见操作

  • *:解引用,访问迭代器指向的元素。

  • ->:访问元素的成员(如果元素是对象)。

  • ++:移动到下一个元素。

  • --:移动到上一个元素(仅双向和随机访问迭代器支持)。

  • ==!=:比较两个迭代器是否指向同一位置。


  • begin() 和end():

    • begin() 返回指向容器第一个元素的迭代器。

    • end()返回指向容器末尾(最后一个元素的下一个位置)的迭代器。

  • cbegin() 和 cend():返回常量迭代器,不能修改元素。

  • rbegin() 和 rend():返回反向迭代器,用于从后向前遍历。

  • crbegin() 和 crend()返回常量反向迭代器,不能修改元素。

5、代码

#include <iostream>
#include <vector>
using namespace std;
int main() {
	vector<int> v = { 1, 2, 3, 4, 5 };

// 使用迭代器遍历
	for (auto it = v.begin(); it != v.end(); ++it) {
		cout << *it << " ";
	}//1,2,3,4,5
	cout << endl;
// 使用反向迭代器遍历
	for (auto it = v.rbegin(); it != v.rend(); ++it) {
		cout << *it << " ";
	}//5,4,3,2,1
	cout << endl;
// 使用迭代器修改元素
	for (auto it = v.begin(); it != v.end(); ++it) {
		*it += 2; // 每个元素加 2
	}//4,5,6,7,8
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值