当前位置: 首页 > news >正文

StdioIterator

参考这种用法:

int a[3]={1,2,3};
copy(a,a+3,ostream_iterator<int>(cout," "));

以及
ostream_iterator 类 | Microsoft Learn 中的函数签名,可以编写出 StdioIterator,同样支持 copy 函数的调用。

#include <stdio.h>
#include <algorithm>
using namespace std;

template <typename T>
class StdioIterator {
public:
	StdioIterator(FILE* fp,const char* delim="") :fp(fp),DELIM(delim) {}
	StdioIterator operator++(void) { return *this; }
	StdioIterator& operator++(int) { return *this; }
	StdioIterator& operator*(void) { return *this; }
	StdioIterator& operator=(const T& val);

private:
	FILE* fp;
	const char* DELIM;
};

template <>
StdioIterator<int>& StdioIterator<int>::operator=(const int& val) {
	fprintf(fp,"%d%s",val,DELIM);
	return *this;
}

template <>
StdioIterator<double>& StdioIterator<double>::operator=(const double& val) {
	fprintf(fp,"%g%s",val,DELIM);
	return *this;
}

int main(void) {
	int a[3]={5,2,0};
	copy(a,a+3,StdioIterator<int>(stdout,"+"));
	putchar('\n');
	double b[2]={1.3,1.4};
	copy(b,b+2,StdioIterator<double>(stdout," "));
	return 0;
}

http://www.dtcms.com/a/103129.html

相关文章:

  • Python与图像处理
  • 反转链表题解
  • 六十天Linux从0到项目搭建(第二十二天)(pipe、管道四种场景)
  • 去中心化稳定币机制解析与产品策略建议
  • UGNX二次开发——截图功能
  • Markdown在线转word格式
  • 11AI搭建preparationのmnist手写体识别的三种方法
  • 如何解决../rtSafe/safeRuntime.cpp (25) - Cuda Error in allocate: 2 (out of memory)
  • PyTorch量化进阶教程:第四章 Transformer 模型构建与训练
  • C/C++蓝桥杯算法真题打卡(Day12)
  • Python Flask并发demo(http并发与锁)独占接口、monkey功能还不太确定
  • 目标检测 AP 计算 实例 python
  • SpringBoot详细教程(持续更新中...)
  • 不同版本的mysql数据库对于注入的影响
  • 解决Win7下打开Delphi 11.3 后提示“LSP Server 已停止工作“
  • 【Ragflow】8.基于ragflow API 搭建极简聊天Web界面
  • CMake —— 1、CMake简介(附:Windows、Linux下的CMake安装方法,及编译测试结果)
  • C++的位与、位或、左移、右移、异或、位取反
  • c++的封装
  • 大数据与datax1.0
  • HarmonyOS Next~鸿蒙元服务开发指南:核心功能与实践
  • DAY 32 leetcode 242--哈希表.有效的字母异位词
  • PHP Swoole 启动时的进程关系
  • ISIS报文
  • ES6 新特性全面总结
  • 26考研|高等代数:线性空间
  • 关于CodeJava的学习笔记——10
  • 医院信息系统与AI赋能的介绍
  • 【Easylive】获取request对象的两种方式
  • windows 下 通过虚拟化拦截对一个text.txt文件的访问 如果要打开的文件名为 text.txt 提示无权限