C++头文件的具体使用

 更新时间:2026年02月02日 10:42:51   作者:忘川渡梦  
本文主要介绍了C++头文件的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、标准C++头文件(无扩展名)

核心语言功能

#include <iostream>      // 输入输出流(cin, cout, cerr, clog)
#include <iomanip>       // 格式化输出(setw, setprecision等)
#include <fstream>       // 文件流(ifstream, ofstream)
#include <sstream>       // 字符串流(istringstream, ostringstream)
#include <string>        // 字符串类(std::string)

容器类

#include <vector>        // 动态数组
#include <list>          // 双向链表
#include <deque>         // 双端队列
#include <array>         // 固定大小数组(C++11)
#include <forward_list>  // 单向链表(C++11)
#include <set>           // 有序集合
#include <map>           // 有序映射
#include <unordered_set> // 哈希集合(C++11)
#include <unordered_map> // 哈希映射(C++11)
#include <stack>         // 栈
#include <queue>         // 队列(queue, priority_queue)
#include <bitset>        // 位集

算法和数值操作

#include <algorithm>     // 常用算法(sort, find, transform等)
#include <numeric>       // 数值算法(accumulate, inner_product等)
#include <functional>    // 函数对象和函数适配器
#include <cmath>         // 数学函数
#include <complex>       // 复数运算
#include <random>        // 随机数生成(C++11)
#include <limits>        // 数值极限(numeric_limits)

内存管理

#include <memory>        // 智能指针(unique_ptr, shared_ptr等)
#include <new>           // 动态内存操作

异常处理

#include <exception>     // 异常基类
#include <stdexcept>     // 标准异常类

类型支持

#include <typeinfo>      // 类型信息(typeid)
#include <type_traits>   // 类型特性(C++11)
#include <cstddef>       // 常用类型定义(size_t, nullptr_t等)
#include <cstdint>       // 固定宽度整数类型(C++11)

多线程支持(C++11及以后)

#include <thread>        // 线程类
#include <mutex>         // 互斥锁
#include <atomic>        // 原子操作
#include <condition_variable> // 条件变量
#include <future>        // 异步操作

二、标准C头文件(c前缀)

这些头文件源自C语言,在C++中为了兼容而保留:

#include <cstdio>        // 标准输入输出(printf, scanf等)
#include <cstdlib>       // 通用工具(malloc, free, rand, exit等)
#include <cstring>       // 字符串处理(strcpy, strlen, memcpy等)
#include <ctime>         // 时间日期函数
#include <cctype>        // 字符分类函数(isalpha, isdigit等)
#include <cmath>         // 数学函数(C++中也可用<cmath>替代<math.h>)
#include <cassert>       // 断言宏
#include <cerrno>        // 错误号

三、常用特殊用途头文件

#include <utility>       // 工具函数(pair, move, forward等)
#include <tuple>         // 元组(C++11)
#include <regex>         // 正则表达式(C++11)
#include <chrono>        // 时间库(C++11)
#include <ratio>         // 编译期有理数(C++11)
#include <initializer_list> // 初始化列表(C++11)
#include <filesystem>    // 文件系统(C++17)
#include <any>           // 任意类型容器(C++17)
#include <variant>       // 类型安全的联合体(C++17)
#include <optional>      // 可选值(C++17)

四、头文件使用示例

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>

int main() {
    std::vector<int> vec = {5, 2, 8, 1, 9};
    
    // 使用algorithm排序
    std::sort(vec.begin(), vec.end());
    
    // 使用iostream输出
    for (int num : vec) {
        std::cout << num << " ";
    }
    
    return 0;
}

五、最佳实践

使用标准头文件:优先使用C++标准头文件而非C风格头文件

包含守卫:自定义头文件应使用包含守卫防止重复包含

#ifndef MY_HEADER_H
#define MY_HEADER_H
// 头文件内容
#endif

使用pragma once(非标准但广泛支持)

#pragma once
// 头文件内容

避免包含不必要头文件:只包含实际需要的头文件,减少编译时间

使用前向声明:当只需要指针或引用时,使用前向声明而非包含整个头文件

六、C++20新增头文件

#include <compare>        // 三路比较运算符(<=>)
#include <concepts>       // 概念(concepts)
#include <ranges>         // 范围(ranges)
#include <span>           // 连续序列视图(span)
#include <bit>           // 位操作
#include <numbers>       // 数学常数
#include <syncstream>    // 同步输出流
#include <stop_token>    // 停止令牌

到此这篇关于C++头文件的具体使用的文章就介绍到这了,更多相关C++头文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅析C++中的动态内存分配

    浅析C++中的动态内存分配

    这篇文章主要为大家详细介绍了C++中动态内存分配的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • C语言深入探究冒泡排序与堆排序使用案例讲解

    C语言深入探究冒泡排序与堆排序使用案例讲解

    算法中排序是十分重要的,而每一个学习计算机的都会在初期的时候接触到这种排序,下面这篇文章主要给大家介绍了关于c语言冒泡排序与堆排序使用的相关资料,需要的朋友可以参考下
    2022-05-05
  • C++如何调用简单的python程序

    C++如何调用简单的python程序

    这篇文章主要介绍了C++如何调用简单的python程序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • C++程序设计-五子棋

    C++程序设计-五子棋

    本文将以简单的存储结构及简单的运算,条件语句,分支语句,循环语句结合,带来一个双人对战版五子棋,这是一个简单的模型,实现了五子棋最最基本的功能。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • C++实现哈夫曼树简单创建与遍历的方法

    C++实现哈夫曼树简单创建与遍历的方法

    这篇文章主要介绍了C++实现哈夫曼树简单创建与遍历的方法,对于C++算法的学习来说不失为一个很好的借鉴实例,需要的朋友可以参考下
    2014-07-07
  • C程序和C++程序之间的互相调用图文教程

    C程序和C++程序之间的互相调用图文教程

    这篇文章主要给大家介绍了关于C程序和C++程序之间互相调用的相关资料,我们平常在刷题的时候,难免遇到实现多组输入这样的问题,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • C++利用多态实现职工管理系统(项目开发)

    C++利用多态实现职工管理系统(项目开发)

    这篇文章主要介绍了C++利用多态实现职工管理系统(项目开发),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Qt基础开发之QString与QByteArray详细用法与区别及QString QByteArray互转

    Qt基础开发之QString与QByteArray详细用法与区别及QString QByteArray互转

    这篇文章主要介绍了Qt基础开发之QString与QByteArray详细用法与区别及QString QByteArray互转,需要的朋友可以参考下
    2020-03-03
  • C++ 中的this指针详解及实例

    C++ 中的this指针详解及实例

    这篇文章主要介绍了C++ 中的this指针详解及实例的相关资料,this指针是类的一个自动生成、自动隐蔽的私有成员,它存在于类的非静态成员中,指向被调用函数所在的对象。需要的朋友可以参考下
    2017-07-07
  • 详解C++编程中对二进制文件的读写操作

    详解C++编程中对二进制文件的读写操作

    这篇文章主要介绍了C++编程中对二进制文件的读写操作,是C++入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09

最新评论