C Primer Plus书中代码注释-chapter16_10.cpp

chapter16_10.cpp

#include <iostream>
#include <iterator>
#include <vector>

int main(){
	using namespace std;
	
	int casts[10] = {6, 7, 2, 9, 4, 11, 8, 7, 10, 5};
	vector<int> dice(10);						//定义了一个包含10个元素的vector容器
	
	copy(casts, casts + 10, dice.begin());		//从非容器类型copy数据到vector容器
	cout << "Let the dice be cast!\n";
	
	ostream_iterator<int, char> out_iter(cout, " ");	//定义输出迭代器,第一个模板参数(int)指出了被发送给输出流的数据类型,
														//第二个模板参数(这里是char)指出了输出流使用的字符类型,
														//构造函数的第一个参数(这里是cout)指出了要使用的输出流(也可以定义ofstream流输出数据到文件),
														//最后一个字符串参数是在发送给输出流的每个数据后显示的分隔符
	
	copy(dice.begin(), dice.end(), out_iter);			//copy容器dice内的数据给out_iter迭代器指向的位置,这里指向了cout,即直接输出dice的数据到显示器
	cout<<endl;
	cout<<"Implicit use of reverse iterator.\n";
	copy(dice.rbegin(), dice.rend(), out_iter);			//使用rbegin和rend,反向输出dice内容到显示器
	cout << endl;
	cout << "Explicit use of reverse iterator.\n";
	
	vector<int>::reverse_iterator ri;					//这里定义了一个反向输出迭代器
	for(ri = dice.rbegin(); ri != dice.rend(); ++ri)	//使用反向输出迭代器通过递增的方式从容器尾向容器头读取数据
		cout << *ri << ' ';								//使用迭代器时,迭代器就相当于一个指针,这里要输出容器内的值,就要对指针进行解引用
	cout << endl;
	
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值