輸入輸出迭代子的用法

輸入輸出迭代子

可以將標準輸入對象cin組裝成輸入流迭代子(istream_iterator),也可以將標準輸出對象組裝成輸出流迭代子(ostream_iterator),

以此來完成輸入輸出的操作。

輸入流迭代器:

定義方法:istream_iterator<要從流中讀取的數據類型> 迭代器名(綁定的流); //可以先不綁定流

例如:std::istream_iterator<int> inputInt(cin);

輸出流迭代器:

定義方法:ostream_iterator<要從流中讀取的數據類型>  迭代器名(綁定的流,元素分隔符);  //輸出流迭代器必須綁定流!

例如:std::ostream_iterator<int> outputInt(cout , "\n"); // 綁定流對象cout,元素之間分隔符爲換行 ,有點類似於java中的printfln(),

實現了自動換行。

也可以這樣定義:std::ostream_iterator<int> outputInt(cout);  元素分隔符不是必須的,但是這樣就不能自動換行了

下面是一個使用的例子:

#include <iostream>
using namespace std;
#include <iterator>

int main()
{
	cout<<"Enter two integers: ";
	//創建一個輸入流迭代器
	std::istream_iterator<int> inputInt(cin);
	int num1 = *inputInt;	//從輸入流中讀取一個整數
	++inputInt;			//移動迭代器指向下一個整數
	int num2 = *inputInt;	//從輸入流中讀取下一個整數

	cout<<"The sum si: ";
	//創建一個輸出流迭代器
	std::ostream_iterator<int> outputInt(cout,"\n");	
	*outputInt = num1 + num2;
	return 0;
}


使用時要注意的幾點:

1.要使用istream_iterator對象和ostream_iterator對象,必須包含頭文件iterator;

2.組裝後的輸入輸出流迭代器只能讀取指定數據類型的數據,否則就會拋出異常;

3.可以通過*操作符讀取標準輸入流中的內容,因爲istream_iterator模板對*操作符進行了重載;

4.通過++運算符可以將迭代器移動到下一個輸入數據處。

 

發佈了37 篇原創文章 · 獲贊 16 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章