博客
关于我
强烈建议你试试无所不能的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/

你可能感兴趣的文章
C语言 喝汽水问题
查看>>
LINUX中搭建DNS服务器,实现正向、反向以及访问不同DNS解析
查看>>
SCCM2012 R2实战系列之十:解决WDS服务无法启动问题(错误1067:进程意外终止)...
查看>>
怎么防止重复发送Ajax
查看>>
ubuntu 下安装 mysql
查看>>
关于k-means聚类算法的matlab实现
查看>>
Git分支2
查看>>
一键安装Gitlab后的备份、迁移与恢复
查看>>
因为本人工作繁忙,精力有限,本博客停止更新。有兴趣的博友可以关注我在CSDN上的主博客...
查看>>
SQL server查看触发器是否被禁用
查看>>
[C++基础]在构造函数内部调用构造函数
查看>>
跟随我在oracle学习php(8)
查看>>
Spring 3.1.0 Hibernate 3.0 Eclipse Spring WEB例子
查看>>
UVA-10212 The Last Non-zero Digit. 分解质因子+容斥定理
查看>>
求两个集合的交集,并集,差集
查看>>
Kotlin的语法糖(一)基础篇
查看>>
OkHttp源码分析
查看>>
让你的app体验更丝滑的11种方法!冲击手机应用榜单Top3指日可待
查看>>
windows kernel exploitation基础教程
查看>>
NS_OPTIONS枚举的用法
查看>>