因为PAT考试的时间要限制在200ms,所以当数据量过大时,会有部分测试点通过不了,用了别人推荐的BufferedReader
也还是会遇到这个问题,尽管它确实比Scanner
快了不少,但是依然通过不了所有测试点。所以不得不复习一下C/C++的知识来备战PAT。目前只记录部分我使用到的C/C++知识,随时补充记录。
取消iostream的输入输出缓存
ios::sync_with_stdio(false);
写C++代码时,cin
和cout
t比scanf
和printf
的效率低的主要原因是,要把输入/输出的东西存入缓冲区再进行输入/输出。所以在代码时可以加上ios::sync_with_stdio(false);
,这样可以取消缓存,让效率相对高一些,但是这样的话就不能cin/cout
和scanf/printf
混用了。
基本数据类型
基本数据类型 | 类型 | 取值范围 | 备注 |
---|---|---|---|
整型 | int | -231 ~ 231 - 1 | 大致范围在109以内 |
整型 | long long | -263 ~ 2 63 - 1 | 大致范围在1018以内 |
浮点型 | float | 实际精度6~7位 | |
浮点型 | double | 实际精度15~16位 | |
字符型 | char | -128 ~ 127 | |
布尔型 | bool | 0(false)or1(true) |
注意事项:
- 整型中还有
short
,但基本上用不到 - 使用
long long
长整型赋大于231 - 1的值时,