c++快读模板代码及其注释
时间: 2023-05-22 11:04:26 浏览: 212
以下是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++快读代码
以下是 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;
}
```
这段代码可以快速读入一个整数,并且具有较好的鲁棒性和通用性。
c++int快读模板
当然,这里是一个简单的 C++ 快读模板:
```cpp
template<typename T>
inline void read(T& x) {
x = 0;
T 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();
}
x *= f;
}
```
你可以使用这个模板来快速读取各种类型的变量,比如 `int`、`long long` 等。使用方法如下:
```cpp
int main() {
int n;
read(n);
// 这里可以使用读入的 n 进行其他操作
return 0;
}
```
希望这个模板能够满足你的需求!如果有任何其他问题,请随时提问。
阅读全文