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;
}

猜你喜欢

转载自blog.csdn.net/xiaoyami/article/details/107664549
今日推荐