对 stl 的头文件
Header file for pair stl
我习惯于使用 stl 对编写代码,而不包含任何用于使用 pair 的特定头文件。但是今天一个朋友告诉我,每当我使用pair时,我都应该使用实用程序标头,否则我在某些编译器上会遇到问题。请告诉这是否属实。如果我可以在不使用它的情况下编写代码,实用程序标头有什么用。
你几乎应该总是包含你在程序中使用的每个类的头文件,否则你依赖于一些头文件在内部使用你感兴趣的类,但这可以在另一个编译器或版本上改变。您需要读取类的引用(例如在 cppreference.com - http://en.cppreference.com/w/cpp/utility/pair 上)并检查您需要包含哪个头文件 - 如果是std::pair
,您应该添加#include <utility>
。你不能依赖于这样一个事实,例如,当你使用setw
等操纵器时,iostream
已经包含了iomanip
和你的代码编译。您不能 - 您始终应参考语言规范并包含所需的标头。
关键是您可能通过包含其他标头间接包含<utility>
标头。通常情况下,标头包含在C++实现中的其他标头中,而标准没有强制要求该包含。因此,通过包含 <utility>
,您可以确保您的代码在符合标准的实现中可移植(至少对于此特定问题而言)。
该标准规定std::pair
在<utility>
,因此每当使用std::pair
时都应包含此内容。
您始终需要包含定义所用组件的标头。一些标准库将被实现以包含它们内部使用的其他声明,但您根本不能依赖它。我认为标准库提供声明是一个错误,它们不需要提供。
类模板std::pair
由 <utility>
提供
相关文章:
- STL 的头文件
- 在函数 C++14 中包含 STL 头文件
- 如何使用 STL C++读取文件和保存连字符
- 如何使用 STL 中的容器读取文件
- 修复可能损坏的 .stl 文件上的法线
- 将STL文件添加到QT小部件
- 如何为C++ STL 模板文件生成标记文件,例如未来
- 使用.txt文件填充 STL 列表不起作用
- C 库从3D文件格式(例如STL)获得常规网格
- 将多个 stl 文件合并为一个
- 导入 .C++ 中的 STL 文件?
- 如何将 STL 映射保存到文件C++
- 对 stl 的头文件
- 显示一个错误(在Visual Studio中),当某人试图在当前.cpp或.h文件中使用STL时
- 包括(STL)标题中的标题文件
- 如何使用 STL 将 STDIN 转储到文件中C++
- 将文件读取到stl矢量时删除rn
- 如何将RAW文件(3D图像)转换为STL格式
- STL容器,用于在C++中组合多个非常大的光栅数据文件
- STL正在从文件中读取