STL之迭代器

迭代器,来了!!!
本篇博文主要讲解如何使用迭代器进行容器的遍历,以及介绍如何使用迭代器进行insert(插入)和erase(删除)操作,辅助数据结构为vector。
代码和相关注释如下:

#include<iostream>
#include<vector>
using namespace std;
int main() {

	//$STL迭代器
	//iterator迭代器又称为Cursor模式,它提供了一种访问聚合对象元素的方法。
	//并且这种方法不会暴露聚合对象的内部表示,简而言之,通过利用迭代器,我们可以
	//按照某种顺序访问聚合对象的元素而不知道该聚合对象的内部表示。

	//Advantages of using iterator
	//由于使用迭代器时,我们并不知道聚合对象的内部表示,因而实现了迭代器与算法互不干扰的相互发展
	//且能使数据结构和算法粘合起来。
	//迭代器重载了*,++,==,!=,=等运算符,以用于操作复杂的数据结构。容器提供迭代器,而算法使用迭代器。
	//常见的迭代器类型有iterator,const_iterator,reverse_iterator和const_reverse_iterator,这些迭代器
	//的主要区别在于访问顺序以及一些属性上存在差异(比如,迭代器是否可修改,访问顺序使正或者反的方向)
	
    //以下实例代码主要演示了使用迭代器进行的一些常规操作
	//比如利用迭代器如何进行遍历,如何利用迭代器进行插入和删除等问题
	
	
	vector<int>v;
	v.push_back(1);
	v.push_back(2);
	v.push_back(3);
	v.push_back(4);//从数组尾部添加元素
	cout << "下标访问数值第三个元素为:" << v[2] << endl;
	cout << "使用迭代器输出vector元素" << endl;
	vector<int>::iterator iter = v.begin();
	for (; iter != v.end(); iter++) {
		cout << *iter << " ";//输出迭代器遍历内容
	}
	cout << endl;
	//在第一个元素之前插入100,insert begin+n表示在n个元素之前插入元素
	//默认为1
	v.insert(v.begin(), 100);

	//在最后一个元素之后插入50,insert end+n表示在第n个元素之后添加元素
	//默认为1
	v.insert(v.end(),50);

	for (vector<int>::iterator i = v.begin(); i != v.end(); i++) {
		cout << *i<<" ";//在表达式中直接迭代
	}
	cout << endl;
	
	vector<int>arr(10);
	for (int i = 0; i < 10;i++) {
		arr[i] = i;
	}
	for (vector<int>::iterator iter1 = arr.begin(); iter1 != arr.end(); iter1++) {
		cout << *iter1<<" ";//输出迭代内容
	}
	cout << endl;

	//删除,erase,思想和insert差不多
	arr.erase(arr.begin(), arr.begin() + 5);//删除第一个到第五个元素
	for (vector<int>::iterator iter2 = arr.begin(); iter2 != arr.end(); iter2++) {
		cout << *iter2<<" ";//输出删除后的结果
	}
	return 0;
}

运行结果如下图所示:
在这里插入图片描述
加油!!! 肝!!!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值