当前位置:   article > 正文

C++常见头文件汇总_c++常用头文件

c++常用头文件

目录

一.<iostream>(input&output stream)

二.<stdio.h>(standard buffered input&output)

三.<bit/stdc++.h>

四.<algorithm>

五. <cmath>和<math.h>


一.<iostream>(input&output stream)

#include <iostream>
  1. iostream分为istream和ostream,istream(输入流)类型,提供输入操作;ostream(输出流)类型,提供输出操作。
  2. 输入流 " cin>> " 和 输出流 " cout<< " ,后面接的数据类型可以是int,float,double,string等。
  3. 但是输入输出时必须标注空间域,可以在cout语句前面加上"std::cout",也可以在开头表明"using namespace std;"

在C++中,std是标准库(Standard Library)的命名空间(namespace)。但在大型项目中,为了避免命名冲突,一般建议显式地使用"std::"前缀,而不采用"using namespace std;"的方式。

二.<stdio.h>(standard buffered input&output)

#include <stdio.h>
  1. 标准输入输出函数,也提供输入输出的功能。
  2. 在C++中,优先使用"<iostream>"来代替"<stdio.h>","<stdio.h>"主要用于C风格的输入输出。如"printf"和"scanf"进行格式化输入输出。

三.<bits/stdc++.h>

#include <bits/c++std.h>
  1. 俗称万用头,意思就是啥都有,使得开发者不需要逐个包含各个便准库头文件,但是带来的弊端也很明显,那就是大大延长的编译的时间,使得项目得效率降低。
  2. 经常被用于竞赛,避免重复写一些库文件,但并不是所有的oj平台都支持该库文件。

库的具体内容:

  1. // C++ includes used for precompiling -*- C++ -*-
  2. // Copyright (C) 2003-2013 Free Software Foundation, Inc.
  3. //
  4. // This file is part of the GNU ISO C++ Library. This library is free
  5. // software; you can redistribute it and/or modify it under the
  6. // terms of the GNU General Public License as published by the
  7. // Free Software Foundation; either version 3, or (at your option)
  8. // any later version.
  9. // This library is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. // GNU General Public License for more details.
  13. // Under Section 7 of GPL version 3, you are granted additional
  14. // permissions described in the GCC Runtime Library Exception, version
  15. // 3.1, as published by the Free Software Foundation.
  16. // You should have received a copy of the GNU General Public License and
  17. // a copy of the GCC Runtime Library Exception along with this program;
  18. // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  19. // <Licenses - GNU Project - Free Software Foundation>.
  20. /** @file stdc++.h
  21. * This is an implementation file for a precompiled header.
  22. */
  23. // 17.4.1.2 Headers
  24. // C
  25. #ifndef _GLIBCXX_NO_ASSERT
  26. #include <cassert>
  27. #endif
  28. #include <cctype>
  29. #include <cerrno>
  30. #include <cfloat>
  31. #include <ciso646>
  32. #include <climits>
  33. #include <clocale>
  34. #include <cmath>
  35. #include <csetjmp>
  36. #include <csignal>
  37. #include <cstdarg>
  38. #include <cstddef>
  39. #include <cstdio>
  40. #include <cstdlib>
  41. #include <cstring>
  42. #include <ctime>
  43. #if __cplusplus >= 201103L
  44. #include <ccomplex>
  45. #include <cfenv>
  46. #include <cinttypes>
  47. #include <cstdalign>
  48. #include <cstdbool>
  49. #include <cstdint>
  50. #include <ctgmath>
  51. #include <cwchar>
  52. #include <cwctype>
  53. #endif
  54. // C++
  55. #include <algorithm>
  56. #include <bitset>
  57. #include <complex>
  58. #include <deque>
  59. #include <exception>
  60. #include <fstream>
  61. #include <functional>
  62. #include <iomanip>
  63. #include <ios>
  64. #include <iosfwd>
  65. #include <iostream>
  66. #include <istream>
  67. #include <iterator>
  68. #include <limits>
  69. #include <list>
  70. #include <locale>
  71. #include <map>
  72. #include <memory>
  73. #include <new>
  74. #include <numeric>
  75. #include <ostream>
  76. #include <queue>
  77. #include <set>
  78. #include <sstream>
  79. #include <stack>
  80. #include <stdexcept>
  81. #include <streambuf>
  82. #include <string>
  83. #include <typeinfo>
  84. #include <utility>
  85. #include <valarray>
  86. #include <vector>
  87. #if __cplusplus >= 201103L
  88. #include <array>
  89. #include <atomic>
  90. #include <chrono>
  91. #include <condition_variable>
  92. #include <forward_list>
  93. #include <future>
  94. #include <initializer_list>
  95. #include <mutex>
  96. #include <random>
  97. #include <ratio>
  98. #include <regex>
  99. #include <scoped_allocator>
  100. #include <system_error>
  101. #include <thread>
  102. #include <tuple>
  103. #include <typeindex>
  104. #include <type_traits>
  105. #include <unordered_map>
  106. #include <unordered_set>
  107. #endif

四.<algorithm>

#include <algorithm>
  1. <algorithm>是C++标准模板库中algorithm头文件,它包含了一些算法,如sort(排序)、max(最大值)、min(最小值)、swap(交换)等。
  2. 由于是标准模板库文件,使用时同样也需要标注空间域,即使用"std"命名空间

五.<cmath> 和 <math.h>

  1. #include <cmath>
  2. #include <math.h>

<cmath>和<math.h>是C++和C语言中用于数学计算的标准库头文件。它们提供了一系列数学函数和常量,可以进行数值计算和数学操作,常见的如求绝对值函数,取整运算,幂运算,三角函数等等。

区别:

  • 命名空间:<cmath>中的数学函数和常量位于std命名空间中,而<math.h>中的函数和常量不属于任何命名空间。在C++中,使用<cmath>时需要使用std::前缀,如std::sin;而在C语言中,使用<math.h>时直接使用函数名,如sin
  • 兼容性:<cmath>是C++标准库中的头文件,而<math.h>是C语言标准库中的头文件。因此,<cmath>中的函数和常量在C++中是可用的,而<math.h>中的函数和常量在C和C++中都是可用的。

  • 类型安全:<cmath>中的函数和常量使用了函数重载和模板,提供了类型安全的数学计算。它们可以处理不同类型的参数,如浮点数、整数等,并返回相应的结果类型。而<math.h>中的函数通常只接受和返回double类型的参数和结果。

  • 扩展功能:由于C++具有更多的语言特性和面向对象的设计,<cmath>中可能会提供一些C语言中没有的额外功能,如函数模板、异常处理等。

六. <string>

#include <string>

 string即字符串类型,提供了一系列对字符串操作的方法,通常用于保存文本等字符串信息。

本文将不断更新C++其他的头文件,如有错误欢迎指出

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/917658
推荐阅读
相关标签
  

闽ICP备14008679号