template fastread
昨天梦到一种快读,你给他传多少参,他就读多少数
今天学了折叠表达式和隐式转换,现在来把这玩意实现一下
特化函数
void read(int)
读入一个整数
void read(char&[],range=size_t)
按数组大小读入一个字符串
void readarray(T x,T2&[])
先读入一个整数 \(x\),再读入 \(x\) 个数字,传入数组
一般函数
void read(...Args)
读入若干变量. 仅限于整数类型,数组或字符串
void readact(int,function<>,...Args)
第一个参数为执行次数,为第三个参数及以后的全部参数执行读入,再传入第二个参数内执行.
使用例
读入下列数据:
1
5
1 2 3 4 5
int n,a[6];
readarray(n,a);
2
1 3 5
int u,v,w;
read(u,v,w);
int a[4];
read(a,3);
3
图论建边
4 3
1 2
2 3
3 4
read(n,m)
for(int i=1;i<=m;++i){
read(u,v,w);add(u,v,w);
}
function<auto> r=add;
read(n,m);readact(m,r,u,v,w);
代码
#include<bits/stdc++.h>
using namespace std;
template<typename T>
inline void read(T& x){
x=0;bool sym=0;char c=getchar();
while(!isdigit(c)){sym^=(c=='-');c=getchar();}
while(isdigit(c)){x=x*10+c-48;c=getchar();}
if(sym)x=-x;
}
template<size_t N>
inline void read(char (&str)[N]){
size_t n=0;char c=getchar();
while(n<N-1&&!isspace(c)){str[n]=c;c=getchar();++n;}
str[n]=0;
}
template<typename T,size_t N>
inline void read(T (&a)[N],int range=N){
for(int i=1;i<=range-1;++i){read(a[i]);}
}
template<typename T,typename... Args>
inline void read(T& x,Args&... args){
read(x);read(args...);
}
template<typename T,typename T2>
inline void readarray(T& x,T2& args){
read(x);read(args,x);
}
template<typename func,typename... Args>
inline void readact(int x,function<func>fu,Args&... args){
for(int i=1;i<=x;++i){
read(args...);
fu(args...);
}
}
cpp.json
{
"Template":{
"prefix": "fastread",
"body":[
"#define endl '\\n'",
"template<typename T>",
"inline void read(T& x){",
" x=0;bool sym=0;char c=getchar();",
" while(!isdigit(c)){sym^=(c=='-');c=getchar();}",
" while(isdigit(c)){x=x*10+c-48;c=getchar();}",
" if(sym)x=-x;",
"}",
"template<size_t N>",
"inline void read(char (&str)[N]){",
" size_t n=0;char c=getchar();",
" while(n<N-1&&!isspace(c)){str[n]=c;c=getchar();++n;}",
" str[n]=0;",
"}",
"template<typename T,size_t N>",
" inline void read(T (&a)[N],int range=N){",
" for(int i=1;i<=range-1;++i){read(a[i]);}",
"}",
"template<typename T,typename... Args>",
" inline void read(T& x,Args&... args){",
" read(x);read(args...);",
"}",
"template<typename T,typename T2>",
"inline void readarray(T& x,T2& args){",
" read(x);read(args,x);",
"}",
"template<typename func,typename... Args>",
"inline void readact(int x,function<func>fu,Args&... args){",
" for(int i=1;i<=x;++i){",
" read(args...);",
" fu(args...);",
" }",
"}"
]
}
}
// Place your snippets for cpp here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
// same ids are connected.
// Example:
// "Print to console": {
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
template fastread的更多相关文章
- 为.NET Core项目定义Item Template
作为这个星球上最强大的IDE,Visual Studio不仅仅提供了很多原生的特性,更重要的是它是一个可定制的IDE,比如自定义Project Template和Item Template就是一个非常 ...
- jQuery.template.js 简单使用
之前看了一篇文章<我们为什么要尝试前后端分离>,深有同感,并有了下面的评论: 我最近也和前端同事在讨论这个问题,比如有时候前端写好页面给后端了,然后后端把这些页面拆分成很多的 views, ...
- 2000条你应知的WPF小姿势 基础篇<69-73 WPF Freeze机制和Template>
在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师.最为出色的是他维护了两个博客:2,000ThingsYou Should Know About C# 和 2,00 ...
- tornado template
若果使用Tornado进行web开发可能会用到模板功能,页面继承,嵌套... 多页应用模板的处理多半依赖后端(SPA就可以动态加载局部视图),就算是RESTfull的API设计,也不妨碍同时提供部分模 ...
- 设计模式(九): 从醋溜土豆丝和清炒苦瓜中来学习"模板方法模式"(Template Method Pattern)
今天是五.四青年节,祝大家节日快乐.看着今天这标题就有食欲,夏天到了,醋溜土豆丝和清炒苦瓜适合夏天吃,好吃不上火.这两道菜大部分人都应该吃过,特别是醋溜土豆丝,作为“鲁菜”的代表作之一更是为大众所熟知 ...
- C++泛型编程:template模板
泛型编程就是以独立于任何特定类型的方式编写代码,而模板是C++泛型编程的基础. 所谓template,是针对“一个或多个尚未明确的类型”所编写的函数或类. 使用template时,可以显示的或隐示的将 ...
- 新手入门Underscore.js 中文(template)
Underscore.js是一个很精干的库,压缩后只有4KB.它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了javaScript的编程.MVC框架Backbone.js就将这个库作为自 ...
- knockoutjs如何动态加载外部的file作为component中的template数据源
玩过knockoutjs的都知道,有一个强大的功能叫做component,而这个component有个牛逼的地方就是拥有自己的viewmodel和template, 比如下面这样: ko.compon ...
- JavaScript模板引擎artTemplate.js——template.helper()方法
上一篇文章我们已经讲到了helper()方法,但是上面的例子只是一个参数的写法,如果是多个参数,写法就另有区别了. <div id="user_info"></d ...
- linux下, 再次遇到使用thinkphp的模板标签时,报错used undefined function \Think\Template\simplexml_load_string() 是因为没有安装 php-xml包
linux下, 使用thinkphp的模板标签,如 eq, gt, volist defined, present , empty等 标签时, 报错: used undefined function ...
随机推荐
- 绝对要收藏!!! JavaEE开发常用注解
目录 前言 1.Mybatis常用注解 2.SpringMVC常用注解 3.Spring常用注解 1. IoC注解 2. DI注解 3. 事务注解 4.SpringBoot常用注解 5.Lombok注 ...
- 国内的开源AI模型共享网站(AI模型的GitHub)—— mindscope —— 使用git lfs方式下载模型文件
参考前文: 国内的开源AI模型共享网站(AI模型的GitHub)-- mindscope -- 对标外网的"huggingface",mindscope好用吗? 使用git lfs ...
- 【转载】 【Java分享客栈】我曾经的两个Java老师一个找不到工作了一个被迫转行了
本文作者: 福隆苑居士 本文链接: https://www.cnblogs.com/fulongyuanjushi/p/16182465.html 版权声明: 本博客所有文章除特别声明外,均采用 ...
- 清除 Nuxt 数据缓存:clearNuxtData
title: 清除 Nuxt 数据缓存:clearNuxtData date: 2024/8/6 updated: 2024/8/6 author: cmdragon excerpt: 摘要:本文详细 ...
- 讲师招募 | Apache DolphinScheduler Meetup诚邀您共建开源!
随着Apache DolphinScheduler在全球范围内的快速发展,我们的用户群体和社区活动也在不断扩大. 为了进一步丰富我们的社区内容,分享更多有价值的知识和经验,我们诚挚地邀请您加入我们,成 ...
- 再探GraphRAG:如何提升LLM总结能力?
作者:王振亚 编者语: 自微软发布GraphRAG之后,相关解读文层出不穷,其中不乏优秀的内容.比如前段时间转载薛明同学的<微软GraphRAG框架源码解读>让大家快速对GraphRAG的 ...
- 【全】CSS动画大全之其他【移动盒子显示详情】
效果预览 代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...
- Fiddler远程调试js
使用Fiddler调试本地js 在我们前端开发的日常工作中,发现服务器上某个css/javascript文件有问题,需要修改,那真是家常便饭.通常,我们需要将文件进行修改,然后重新发布再验证,这样就很 ...
- Prometheus部署以及问题解决
Prometheus作用: Prometheus监控(Prometheus Monitoring)是一种开源的系统监控和警报工具.它最初由SoundCloud开发并于2012年发布,并在2016年加入 ...
- GC终结标记 SuspendEE 是怎么回事
一:背景 1. 讲故事 写这篇是起源于训练营里有位朋友提到了一个问题,在 !t -special 输出中有一个 SuspendEE 字样,这个字样在 coreclr 中怎么弄的?输出如下: 0:000 ...