博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何使用istream_iterator將文字檔轉到vector? (C/C++) (STL)
阅读量:5838 次
发布时间:2019-06-18

本文共 1136 字,大约阅读时间需要 3 分钟。

stream_iterator除了能使用cin外,只要是stream都可用,如fstream,stringstream都可用。本範例demo如何利用stream_iterator將文字檔的每個單字轉到vector內。

 1
ExpandedBlockStart.gif
ContractedBlock.gif
/**/
/* 
 2InBlock.gif(C) OOMusou 2006 http://oomusou.cnblogs.com
 3InBlock.gif
 4InBlock.gifFilename    : StreamIteratorInFileOutFile.cpp
 5InBlock.gifCompiler    : Visual C++ 8.0 / ISO C++
 6InBlock.gifDescription : Demo how to use istream_iterator from file to vector
 7InBlock.gif              and ostream_iterator from vector to file
 8InBlock.gifRelease     : 12/07/2006
 9ExpandedBlockEnd.gif*/
10
None.gif
11
None.gif#include 
<
fstream
>
12
None.gif#include 
<
iostream
>
13
None.gif#include 
<
vector
>
14
None.gif#include 
<
algorithm
>
15
None.gif#include 
<
string
>
16
None.gif#include 
<
iterator
>
17
None.gif
18
None.gif
using
 
namespace
 std;
19
None.gif
20
ExpandedBlockStart.gifContractedBlock.gif
int
 main() 
dot.gif
{
21InBlock.gif  ifstream inFile("books-11-30-2006.txt");
22InBlock.gif  vector<string> svec;
23InBlock.gif
24InBlock.gif  // Copy cin to vector
25InBlock.gif  copy(istream_iterator<string>(inFile), istream_iterator<string>(), back_inserter(svec));
26InBlock.gif
27InBlock.gif  // Sort vector
28InBlock.gif  sort(svec.begin(), svec.end());
29InBlock.gif
30InBlock.gif  // Copy vector to cout
31InBlock.gif  ofstream outFile("books-11-30-2006_r.txt");
32InBlock.gif  copy(svec.begin(), svec.end(), ostream_iterator<string>(outFile,"\n"));
33InBlock.gif
34InBlock.gif  inFile.close();
35InBlock.gif  outFile.close();
36ExpandedBlockEnd.gif}

使用這種寫法,優點是程式碼非常精簡,但缺點是一定得用一個Container接,如vector,實務上可能邊讀文字檔邊處理就好。

Keyword

stream_iterator, copy, vector, text

See Also

转载地址:http://jojcx.baihongyu.com/

你可能感兴趣的文章
HashMap分析
查看>>
jQuery选择器
查看>>
swiper中的默认值的属性和作用(小程序交流群:604788754)
查看>>
ASP.NET Core 中文文档 第四章 MVC(4.4)依赖注入和控制器
查看>>
数据库(学习整理)----2--关于Oracle用户权限的授权和收权
查看>>
(02)如何得到eclipse?
查看>>
openwrt的编译环境
查看>>
HTML5 本地裁剪图片
查看>>
SQL Server服务器CPU爆高解决
查看>>
C#学习历程(七)--委托
查看>>
点击按钮不弹出新窗口
查看>>
GIT, GitHub
查看>>
通过file文件调用JDBC的Driver url 等参数
查看>>
if else 的简单应用
查看>>
java中字节数组byte[]和字符(字符串)之间的转换
查看>>
Excel
查看>>
Python列表list的用法
查看>>
Linux crontab任务调度详述(转)
查看>>
SQL SERVER触发器浅析
查看>>
如何快速学习新的知识
查看>>