C++ 四种迭代器与三种遍历方式

C++ 四种迭代器与三种遍历方式

一、四种迭代器

拿vector举例

  1. 非const对象的正向迭代器
vector<int>::iterator it = v.begin();
while (it != v.end()) {
	cout << *it << " ";
	it++;
}
  1. 非const对象的反向迭代器
vector<int>::reverse_iterator rit = v.rbegin();
while (rit != v.rend()) {
	cout << *rit << " ";
	++rit;
}
  1. const对象的正向迭代器与const对象的反向迭代器
void print_vector(const vector<int>& v) {//在实际过程中一般不直接使用const 定义对象
	//一般和引用&用于传参中,引用提高效率,const防止改变对象
	//const对象的正向迭代
	vector<int>::const_iterator it = v.begin();
	while (it != v.end()) {
		cout << *it << " ";
		++it;
	}
	cout << endl;
	//const对象的反向迭代
	vector<int>::const_reverse_iterator rit = v.rbegin();
	while (rit != v.rend()) {
		cout << *rit << " ";
		rit++;
	}
	cout << endl;
}

二、三种遍历方法

  1. for+下标遍历
for (size_t i = 0; i < v.size(); i++) {
	cout << v[i] << " ";
}
cout << endl;
  1. for+auto遍历
for (auto e : v) {//也可以写成auto& e可修改v里的内容
	cout << e << " ";
}
cout << endl;
  1. 迭代器遍历
vector<int>::iterator it = v.begin();//也可以写成auto it=vbegin();更加简洁
while (it != v.end()) {
	cout << *it << " ";
	++it;
}
cout << endl;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyycqupt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值