前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CSP-J/S考试中是否可以使用万能头文件

CSP-J/S考试中是否可以使用万能头文件

作者头像
海天一树
发布2020-01-02 11:19:06
4.1K0
发布2020-01-02 11:19:06
举报
文章被收录于专栏:海天一树海天一树

bits/stdc++.h,包含了c++所有的头文件,因此被称作万能头文件。

假如DevC++的安装路径为"C:\ProgramFiles (x86)\Dev-Cpp",则bits/stdc++.h的完整路径为"C:\Program Files(x86)\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\x86_64-w64-mingw32\bits"。

stdc++.h中的具体内容为:

// C

#ifndef _GLIBCXX_NO_ASSERT

#include <cassert>

#endif

#include <cctype>

#include <cerrno>

#include <cfloat>

#include <ciso646>

#include <climits>

#include <clocale>

#include <cmath>

#include <csetjmp>

#include <csignal>

#include <cstdarg>

#include <cstddef>

#include <cstdio>

#include <cstdlib>

#include <cstring>

#include <ctime>

#if __cplusplus >= 201103L

#include <ccomplex>

#include <cfenv>

#include <cinttypes>

#include <cstdalign>

#include <cstdbool>

#include <cstdint>

#include <ctgmath>

#include <cwchar>

#include <cwctype>

#endif

// C++

#include <algorithm>

#include <bitset>

#include <complex>

#include <deque>

#include <exception>

#include <fstream>

#include <functional>

#include <iomanip>

#include <ios>

#include <iosfwd>

#include <iostream>

#include <istream>

#include <iterator>

#include <limits>

#include <list>

#include <locale>

#include <map>

#include <memory>

#include <new>

#include <numeric>

#include <ostream>

#include <queue>

#include <set>

#include <sstream>

#include <stack>

#include <stdexcept>

#include <streambuf>

#include <string>

#include <typeinfo>

#include <utility>

#include <valarray>

#include <vector>

#if __cplusplus >= 201103L

#include <array>

#include <atomic>

#include <chrono>

#include <condition_variable>

#include <forward_list>

#include <future>

#include <initializer_list>

#include <mutex>

#include <random>

#include <ratio>

#include <regex>

#include <scoped_allocator>

#include <system_error>

#include <thread>

#include <tuple>

#include <typeindex>

#include <type_traits>

#include <unordered_map>

#include <unordered_set>

#endif

在CSP-J/S考试是可以使用万能头文件的。使用了万能头文件之后,就不再需要包含其他头文件了。

使用万能头文件,会把大量的不需要用到的头文件也包含进去,这样会增加编译时间。但是考虑到CSP-J/S以考察算法为主,代码通常很短,所以即使包含了万能头文件,编译起来也很快。另外,评测程序的时间限制指的是运行时间限制,而不是编译时间限制,所以包含万能头文件不会影响到评分。

也就是说,考试时既可以逐个包含需要用到的头文件,也可以一次性包含万能头文件。

但是,就平时练习来说,建议不要使用万能头文件。理由有三:

第一,万能头文件,也叫“懒人专用头文件”。使用万能头文件,可能会导致你不了解哪个函数具体是在哪个头文件里声明的,从而影响到你对C++基础框架的理解。咱们学C/C++,不仅仅是为了考CSP-J/S认证,更是为了扎扎实实学习信息学知识。

第二,万能头文件只存在于GCC编译器中,clang和MSVC编译器中并没有万能头文件。

第三,除了CSP-J/S外,有时候还有一些其他的考试。有些考试会明确规定不允许使用万能头文件。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信息学竞赛NOIP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档