当前位置: 首页 > 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;
}

相关文章:

  • 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
  • 做网站要学会什么语言/昆明百度推广开户
  • 重庆永川微网站建设/帮别人推广app赚钱
  • 专门做娱乐场所的设计网站/百度关键词点击排名
  • 自己的网站怎么编辑器/免费的网站推广
  • 网站建设便宜不可信/零售客户电商网站
  • 阿里云注册网站之后怎么做网站/成人电脑基础培训班