istream_iterator是讓輸入流得以抽象成iterator的進階使用 使得STL的algorithm搭配容器使用更為方便
//範例一 //如往常在ZeroJudge系統常看到的測資 // 1 2 3 4 5 6 5 ...... 一串輸入要輸入至容器中(如vector) //可以這樣使用 istream_iterator < int > iiter(cin),eos; //這裡的cin可以換成你自己宣告的輸入流(如:sstream or fstream) vector < int > vec(iiter,eos); //這樣就輸入完了
//範例二 //主要是示範資料分群並有提供資料數目 //3 這裡的3代表的是要有多少資料輸入至容器中 //4 5 6 測資 //在C++11的標準下可以這樣使用 vector < int > vec; copy_n(istream_iterator < int > (cin),n,back_inserter(vec)); //這裡的cin跟前面範例一樣,istream_iterator我懶得再另外宣告變數 //n代表要輸入的資料數,如上面提供的測資的話為3 //back_inserter來包裝vec使他得以隨著資料增加,也變動容量,如果使用list就不需要這樣包裝 //記得要開啟c++11的標準來編譯 //這樣就輸入完了
0 意見:
張貼留言