青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

力為的技術博客

聯系 聚合 管理
  154 Posts :: 1 Stories :: 561 Comments :: 0 Trackbacks

用std::find查找文件流中的內容
mythma

         在一般的情況下, 我是很少使用迭代器istream_iterator的。最近在為項目編寫一個讀特定格式文件的功能時,發現使用istream_iterator和std::find能非常方便的實現文件內容的查找。


注:以下全部假定是文本文件,二進制文件沒有測試過。



假定要查找的是一個文件中的某個string,可以這樣實現:

 

  ifstream fIn("yourfile");
  
if(fIn)
  
{
   istream_iterator
<string> strReader(fIn);// file begin
   istream_iterator<string> strEOF;  // file end

   
string strToFind = "mythma";
   strReader
=find(strReader, strEOF, strToFind);
   
while(strReader != strEOF)
   

     
++strReader;  
    
// do something 
    
//*strReader; //dereference to get current string
    
// find next 
    strReader=find(strReader, strEOF, strToFind);
   }

  }



從上面的代碼可以看出, 此時fIn可以看作是一個存放const string的容器。



題外話:

1、什么時候可以考慮使用istream_iterator?

我覺得,當文件中是同構數據的時候,使用istream_iterator可以方便的讀取、查找對象。
1) 如果文件中的內容都是同一種基本類型的數據,如int,可以這樣用istream_iterator:
   istream_iterator<int> intReader(fIn);// file begin
   istream_iterator<int> intEOF;  // file end

2) 如果是一個個自定義CUser對象的數據順序存放的,需要重載operator >>,然后這樣用:
   istream_iterator<CUser> intReader(fIn);// file begin
   istream_iterator<CUser> intEOF;  // file end

如果需要查找對象,在特定的情況下還需要重載比較運算符。

2、文件中是異構數據情況的處理

首先文件中所有的內容都可以用string來操作,這種處理方式無需討論。
若用istream_iterator<int>讀取包含非int數據的文件時會出現什么情況?
經測試,當istream_iterator<int>遇到第一個非int數據時,迭代終止。
---
測試代碼:

  using namespace std;
  ifstream fIn(
"test.txt");
  
if(fIn)
  
{
   istream_iterator
<int> intReader(fIn);
   istream_iterator
<int> intEOF;

   copy(intReader, intEOF, ostream_iterator
<int>(cout, " "));
  }


---
測試文件test.txt:
1 22 3.4 haha 44 hello
---
輸出結果:
1 22 3

3、效率問題
istream_iterator除了使代碼看起來比較簡潔外,大家最關心的恐怕就是效率問題。我沒有測試比較過



以上結論僅供參考,若有錯誤,歡迎批評。
歡迎大家討論

posted on 2006-01-07 10:21 力為 閱讀(5879) 評論(4)  編輯 收藏 引用 所屬分類: 5. GP&STL&BOOST

評論

# re: 用std::find查找文件流中的內容 2006-01-09 14:52 a boy
istream_iterator<string> strReader(fIn);// file begin
istream_iterator<string> strEOF; // file end

這樣就知道strReader指向頭,而strEOF指向尾啦?是不缺點什么?  回復  更多評論
  

# re: 用std::find查找文件流中的內容 2006-01-12 20:51 力為
不知道a boy指的還缺少什么。
STL中就是如此使用的。
  回復  更多評論
  

# re: 用std::find查找文件流中的內容 2006-01-14 15:03 guest
ifstream fIn("yourfile");
if(fIn)
{
istream_iterator<string> strReader(fIn);// file begin
istream_iterator<string> strEOF; // file end

string strToFind = "mythma";
strReader=find(strReader, strEOF, strToFind);
while(strReader != strEOF)
{

//改正如下:
// do something
//*strReader; //dereference to get current string

++strReader;


strReader=find(strReader, strEOF, strToFind);
}
}

  回復  更多評論
  

# re: 用std::find查找文件流中的內容 2006-02-08 07:10 mazha
樓上的畫蛇添足了~  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜综合激情| 久久综合综合久久综合| 亚洲国产精品一区二区尤物区| 亚洲一区免费视频| 国产精品人人爽人人做我的可爱 | 欧美精品一区三区在线观看| 亚洲精品美女在线观看播放| 日韩午夜三级在线| 国产精品日韩在线| 老鸭窝91久久精品色噜噜导演| 另类图片国产| av不卡在线观看| 亚洲一区二区在线播放| 尤妮丝一区二区裸体视频| 亚洲国产合集| 国产精品久久影院| 免费观看欧美在线视频的网站| 欧美激情免费观看| 欧美一区午夜精品| 裸体一区二区| 香蕉成人啪国产精品视频综合网| 久久av一区二区三区亚洲| 亚洲欧洲另类国产综合| 亚洲深夜福利视频| 在线观看国产精品网站| 亚洲天堂免费观看| 亚洲国产婷婷香蕉久久久久久99| 中文久久乱码一区二区| 在线观看成人av电影| 亚洲伊人网站| 日韩午夜在线播放| 久久精品1区| 在线一区二区日韩| 免费观看久久久4p| 久久精品国产综合| 欧美性大战久久久久久久| 免费不卡在线视频| 国产欧美视频在线观看| 亚洲欧洲视频| 亚洲第一精品在线| 欧美一级欧美一级在线播放| aa成人免费视频| 久久婷婷成人综合色| 欧美在线free| 榴莲视频成人在线观看| 欧美一区二区三区久久精品茉莉花| 亚洲激情六月丁香| 久久成人精品无人区| 亚洲免费在线播放| 欧美日韩免费视频| 亚洲电影在线| 亚洲激情另类| 鲁大师影院一区二区三区| 久久久久久精| 国产一区二区三区久久久久久久久| 99精品欧美一区二区三区 | 国产精品久久久久久av下载红粉 | 欧美黄色aaaa| 亚洲成人在线视频网站| 伊人男人综合视频网| 欧美在线一二三区| 久久天天躁夜夜躁狠狠躁2022| 国产一区二区三区久久精品| 午夜精品久久久久久久久| 欧美一级理论片| 国产精品稀缺呦系列在线| 亚洲一级特黄| 久久av一区二区| 国产日韩欧美在线一区| 欧美一区二区三区男人的天堂| 欧美一区网站| 影音先锋日韩精品| 狂野欧美一区| 亚洲精品三级| 亚洲欧美日韩精品综合在线观看| 国产精品久久久久三级| 亚洲永久在线| 久热re这里精品视频在线6| 国内激情久久| 欧美福利在线观看| 在线一区二区三区做爰视频网站 | 日韩一级精品视频在线观看| 中文一区字幕| 国产午夜精品久久久| 久久久精品国产99久久精品芒果| 欧美1区2区视频| 日韩午夜激情电影| 国产女主播一区二区| 久久精品99无色码中文字幕| 欧美激情亚洲另类| 亚洲影视综合| 在线视频国产日韩| 欧美金8天国| 欧美一区二区三区在线| 亚洲国产精品第一区二区| 亚洲一区日韩在线| 在线看视频不卡| 欧美三级网址| 久久久伊人欧美| 一本综合精品| 欧美国产精品一区| 亚洲欧美中文日韩在线| 亚洲国产经典视频| 国产精品网站在线观看| 免费人成网站在线观看欧美高清| 亚洲午夜黄色| 欧美不卡一卡二卡免费版| 欧美一区二区福利在线| 亚洲第一精品福利| 欧美一区二区在线观看| 99re视频这里只有精品| 国产欧美一区视频| 欧美日韩高清区| 久久免费精品视频| 亚洲欧美视频一区| 99国产精品99久久久久久粉嫩| 久久综合免费视频影院| 午夜精品偷拍| 亚洲视屏在线播放| 99在线热播精品免费| 在线观看欧美一区| 国产三区二区一区久久| 国产精品高潮在线| 欧美美女视频| 欧美高清成人| 久久这里有精品15一区二区三区 | 亚洲国产中文字幕在线观看| 久久精品一区二区三区中文字幕| 亚洲视频日本| avtt综合网| 99精品视频免费观看| 亚洲三级免费| 亚洲精品视频啊美女在线直播| 亚洲第一精品在线| 伊人久久大香线蕉av超碰演员| 国产性做久久久久久| 国产精品一区视频| 国产精品三上| 国产精品一区二区黑丝| 国产精品毛片一区二区三区| 国产精品a久久久久| 欧美午夜视频网站| 国产精品久久久| 国产精品激情| 国产午夜精品美女毛片视频| 国产精品综合| 国产一区二区剧情av在线| 国产一区二区福利| 狠狠综合久久av一区二区小说| 精品成人在线观看| 亚洲国产精品久久人人爱蜜臀| 91久久精品国产91久久| 亚洲久久一区| 中日韩男男gay无套| 亚洲视频在线一区观看| 西瓜成人精品人成网站| 久久国产精品久久久| 久久久久久久久蜜桃| 欧美国产一区二区在线观看| 亚洲激情啪啪| 一区二区三区www| 香蕉成人啪国产精品视频综合网| 欧美一区二区视频在线观看2020| 久久久美女艺术照精彩视频福利播放| 久久久噜噜噜久久中文字免| 欧美精品18| 国产精品免费aⅴ片在线观看| 好男人免费精品视频| 亚洲精品一区中文| 午夜日本精品| 欧美岛国在线观看| 亚洲天堂av在线免费| 久久久蜜桃精品| 国产精品av久久久久久麻豆网| 极品少妇一区二区三区| 99国产精品久久久久久久| 欧美一区二区视频网站| 欧美国产日韩一区二区| 亚洲欧美视频在线| 欧美成人精品1314www| 欧美亚一区二区| 亚洲福利视频一区| 欧美在线观看视频| 亚洲激情欧美激情| 久久久精品午夜少妇| 国产精品xvideos88| 亚洲黄色有码视频| 能在线观看的日韩av| 影音先锋久久精品| 一本久道久久综合狠狠爱| 日韩亚洲精品视频| 久久超碰97中文字幕| 亚洲人成高清| 久久久夜色精品亚洲| 国产欧美日本| 午夜精品久久久久久久久久久| 亚洲第一视频网站| 久久精品人人做人人爽| 国产精品毛片一区二区三区 | 国产精品福利在线|