C++ 的万能头文件,你知道多少?
點擊藍字
關注我們
C++ 中萬能頭文件 bits/stdc++.h 的介紹
很多小伙伴估計看有的代碼會碰見沒有多余的其它頭文件比如 algorithm、cmath、iostream 而是用了一行?#include<bits/stdc++.h>?這樣的頭文件并感到詫異,想這是什么。
其實這是一個包含了 C++ 所有頭文件的一個頭文件,為了方便而發明的,其中包含了一下頭文件
//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談一下朋友們擔心的兼容性問題,一早起來跑了幾個oj親測兼容性還是蠻強的,看到去年的介紹博客表示hdu不支持不過現在親測已經支持了,請在hdu肆無忌憚的開掛吧!!
當然國外的主流oj,臺灣的oj,Codeforces和Topcoder這些去年就已經支持#include<bits/stdc++.h>?的oj如今也依舊支持。
看了別人對于這個頭文件的看法,自己也有了更深的認識,包含大量不需要的庫的頭文件,更適合在oj比賽中使用。如果在軟件工程的開發中,我們應該減少包含,控制編譯時間和代碼大小。
優點如下:
???????????? 1.在競賽中節約時間
2.減少了編寫所有必要頭文件的工作量
3.對于使用的每個函數,不用記住GNU C++的所有STL
缺點如下:
1.不屬于GNU C++庫的標準頭文件,在部分情況下可能會失敗
2.使用它將包含許多不必要的東西,并增加編譯時間
3.這個頭文件不是C++標準的一部分,因此是不可移植的,應該避免
4.編譯器每次編譯翻譯單元時都必須實際讀取和分析每個包含的頭文件,應該減少這類頭文件的使用
*聲明:本文于網絡整理,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯系我們刪除或授權事宜。
戳“閱讀原文”我們一起進步
總結
以上是生活随笔為你收集整理的C++ 的万能头文件,你知道多少?的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: php 文件
- 下一篇: 开发第一个Meeting App
