当前位置:   article > 正文

c++11:std::copy示例

std::copy

c++11的<algorithm>库提供了很多基础有用的模板函数。以std::copy为例,下面的代码将容器(list)中的字符串按行输出到指定的文件,只要2行代码:

#include <algorithm>
#include <fstream>
/* 迭代器指定的字符串写入指定的文件,换行符为\n 
 * filename 输出文件名
 * begin 起始迭代器
 * end   结束迭代器
 */
template< typename inIter >
inline bool save_container_to_text(const std::string&filename, inIter begin, inIter end) {
	std::ofstream fout(filename, std::ofstream::binary);
	std::copy(begin, end, std::ostream_iterator<std::string>(fout, "\n"));
	// 不需要显式调用open(),close(),fout创建时会自动执行open,fout对象析构时会自动执行close()函数
	return true;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

调用示例:

list<string> container;
// container 可以为list,map,vector等容器对象
save_container_to_text("output.txt", container.begin(), container.end());
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/707808
推荐阅读
相关标签
  

闽ICP备14008679号