栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

C++模板与STL(四):STL迭代器

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++模板与STL(四):STL迭代器

注:本文不具有教学意义,仅作个人复习参考!

目录

1. 插入迭代器

1.1 反向插入迭代器:front_insert_iterator

1.2 前向插入迭代器:back_insert_iterator

1.3 插入迭代器:insert_iterator

2. 反向遍历迭代器

3. 流迭代器


1. 插入迭代器

前向插入:容器一定要有push_front()

后向插入:容器一定要有push_back()

1.1 反向插入迭代器:front_insert_iterator

1.2 前向插入迭代器:back_insert_iterator

1.3 插入迭代器:insert_iterator
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	vectorvec(arr, arr + 10);
	dequedeq(arr, arr + 10);
	int brr[] = { 33,44,55,66,77 };
	listli(brr, brr+5);
	//定义一个插入迭代器
	insert_iterator> iterInsert(vec, vec.begin() + 3);
	copy(li.begin(), li.end(), iterInsert);
	for (int elem : vec) {
		cout << elem << " ";
	}
	cout << endl;
	//头插入迭代器
	front_insert_iterator>front_it(deq);
	copy(li.begin(), li.end(), front_it);
	for (auto it : deq) {
		cout << it << " ";
	}
	cout << endl;
	//尾插入迭代器
	back_insert_iterator>back_it(deq);
	copy(li.begin(), li.end(), back_it);
	for (auto it : deq) {
		cout << it << " ";
	}
	cout << endl;

 

2. 反向遍历迭代器

	//int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	vectorv1(arr, arr + 10);
	vector::reverse_iterator riter(v1.end());
	cout << "反向迭代器的数据" << *riter << endl;
	cout << "反向头迭代器的数据" << *v1.rbegin() << endl;

	vector::iterator pos1;
	pos1 = find(v1.begin(), v1.end(), 6);
	vector::reverse_iterator rpos1(pos1);
	cout << *pos1 << " " << *rpos1 << endl;

 

3. 流迭代器
	ostream_iteratorout1(cout);
	out1++ = "I";
	out1++ = "love";
	out1++ = "China";

	ofstream outfile;
	outfile.open("D:\DesignPatterns\Template_STL\words.txt", ios::out);
	ostream_iteratorout2(outfile, " ");
	vectorv2;
	v2.push_back("I");
	v2.push_back("love");
	v2.push_back("STL");
	copy(v2.begin(), v2.end(), out2);

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037547.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号