C++ 增加预处理宏的方法
2021-03-29 21:25
标签:return ace stat 一个 art syn cin this with 前几天写题的时候发现,我使用的 而在一些oj上,评测环境也是windows,所以导致了我的 这样就会在编译时增加一个 对于vscode,直接在tasks.json中的args参数中增加这一条指令即可 最后附一下更新后的 可以直接读入字符串了,对于double类型没有特意去写,感觉没有必要。 C++ 增加预处理宏的方法 标签:return ace stat 一个 art syn cin this with 原文地址:https://www.cnblogs.com/artoriax/p/13596369.htmlC++ 增加预处理宏的方法
fread
在oj上并没有比执行了ios::sync_with_stdio(false)
的cin
更快,最后发现并不是fread
的问题,而是因为我增加了这样一条信息#ifdef _WIN32
return getchar();
#endif
fread
直接变成getchar()
了,而使用getchar()
进行快读日常负优化,我就开始找怎么避免这个问题,最后发现可以编译时可以在本地增加预处理宏,具体如下"-D MACRO_NAME macro.c", //增加预处理宏
MACRO_NAME
的宏,然后把ifdef
后面的_WIN32
换成你定义的宏名称即可fread模板
fread
模板struct READ {
inline char read() {
#ifdef Artoriax
return getchar();
#endif
const int LEN = 1 > (char *s) {
char ch;
while (isspace(ch = read()) && ~ch);
while (!isspace(ch) && ~ch) *s++ = ch, ch = read(); *s = ‘\0‘;
return *this;
}
inline READ & operator >> (string &s) {
s = ""; char ch;
while (isspace(ch = read()) && ~ch);
while (!isspace(ch) && ~ch) s += ch, ch = read();
return *this;
}
template