c++快读模板代码及其注释
时间: 2023-05-22 08:04:26 浏览: 66
以下是C++的快读模板代码及注释:
```c++
// 快读函数,返回读入的整数
inline int read() {
int x = 0, f = 1;
char ch = getchar();
while (!isdigit(ch)) {
if (ch == '-') f = -1;
ch = getchar();
}
while (isdigit(ch)) {
x = (x << 3) + (x << 1) + (ch ^ 48);
ch = getchar();
}
return x * f;
}
/*
快读模板注释:
1. inline 关键字表示将该函数内联,可以提高函数调用效率
2. read 函数从标准输入读入一个整数,如果输入的是负数则将其转成负数
3. getchar 函数从标准输入读入一个字符,一次读一个
4. isdigit 函数判断一个字符是否是数字
5. while 循环读入整个数字
5.1 第一个循环读入符号位和第一位数字,注意如果第一位是负号则将 f 设为 -1
5.2 第二个循环读入后面的数字,每次将 x 左移一位再加上新读入的数字,即 x = x * 10 + (ch ^ 48),其中 ch ^ 48 是将字符转成数字
6. 返回最终的整数 x * f
*/
```
希望这可以帮助您!
相关问题
c++ getchar快读模板
C++中的getchar快读模板是一种用于提高输入效率的技巧,它可以替代常规的cin或scanf函数来读取输入。下面是一个简单的getchar快读模板示例:
```cpp
inline int read() {
int x = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-') f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
x = x * 10 + (ch - '0');
ch = getchar();
}
return x * f;
}
```
这个模板通过逐个读取字符并转换为数字来实现快速读取整数。它会忽略掉非数字字符,并且支持负数的读取。你可以根据需要进行修改和扩展。
C++快读代码
以下是 C++ 的快读代码:
```cpp
inline int read() {
int s = 0, w = 1;
char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-') w = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
s = (s << 1) + (s << 3) + (ch ^ '0');
ch = getchar();
}
return s * w;
}
```
这段代码可以快速读入一个整数,并且具有较好的鲁棒性和通用性。