我们知道C++中pair模板包含在中,书上也说要使用pair应该加入头#include,嗯,这没有错。只是,我们是否可以不加入这个头?要知道在大点的程序中少加载些头文件是节省运行时间的主要途径之一。我们先来看以下代码:

#include

#include

#include

using namespace std;

int main()

{

pair t_pair;

t_pair = make_pair("hello", 112);

cout<

cout<

return 0;

}

毫无疑问以上代码没有什么问题,运行的结果第一行是hello,第二行是112,不解释。

进一步,我们去掉头#include,代码变成下面这个样子:

#include #include using namespace std; int main() { pair t_pair; t_pair = make_pair("hello", 112); cout<

如果有兴趣的话大家可以运行一下,结果和包含#include时是一样的。似乎我们可以不用声明就可以用pair,为什么?为解释原因,我们对代码进行如下处理:注释掉命名空间行同时将可能用到命名空间的地方手动加注,代码变成以下样子:

#include

#include

//using namespace std;

int main()

{

pair<:string int> t_pair;

t_pair = make_pair("hello", 112);

std::cout<

std::cout<

return 0;

}

此时程序报错,错误如下:

1>------ 已启动生成: 项目: container, 配置: Debug Win32 ------

1>正在编译...

1>main.cpp

1>e:\c++ practice\container\container\main.cpp(7) : error C2065: “pair”: 未声明的标识符

1>e:\c++ practice\container\container\main.cpp(7) : error C2275: “std::string”: 将此类型用作表达式非法

1>e:\c++ practice\container\container\main.cpp(7) : error C2062: 意外的类型“int”

1>e:\c++ practice\container\container\main.cpp(8) : error C2065: “t_pair”: 未声明的标识符

1>e:\c++ practice\container\container\main.cpp(8) : error C3861: “make_pair”: 找不到标识符

1>e:\c++ practice\container\container\main.cpp(9) : error C2065: “t_pair”: 未声明的标识符

1>e:\c++ practice\container\container\main.cpp(9) : error C2228: “.first”的左边必须有类/结构/联合

1>        类型是“'unknown-type'”

1>e:\c++ practice\container\container\main.cpp(10) : error C2065: “t_pair”: 未声明的标识符

1>e:\c++ practice\container\container\main.cpp(10) : error C2228: “.second”的左边必须有类/结构/联合

1>        类型是“'unknown-type'”

1>生成日志保存在“file://e:\C++ Practice\container\container\Debug\BuildLog.htm”

1>container - 9 个错误,0 个警告

========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

现在大家应该知道怎么回事了,std中重复声明了pair,即如果代码中已经用到了using namespace std;(相当一部分代码都会有这一句),那么我们就不用再加入头#include以节省资源。为验证以上想法,我们可以运行以下代码,你会发现运行结果和本文中第一个程序的结果是一样的:

#include #include //using namespace std; int main() { std::pair<:string int> t_pair; t_pair = std::make_pair("hello", 112); std::cout<

c语言中pair的头文件,C++中使用pair是否一定要包含头文件utility相关推荐

  1. 转载——C语言中float,double类型,在内存中的结构(存储方式)

    最近在做一个数据格式分析和转换的项目,第一次接触底层的二进制代码存储,看的一头雾水,看到这个帖子后对于在Windows系统下数据的存储方式有了更多的了解,将原文分享一下: 原文地址为http://ww ...

  2. 在c语言中char型数据在内存中的储存形式为什么

    在c语言中char型数据在内存中的储存形式为"ASCII码".在C语言中,将一个字符常量放到一个字符变量中,实际并不是把该字符本身放到内存单元中,而是将与该字符相对应的ASCII码 ...

  3. 在c语言中 char型数据在内存中的存储形式是,在c语言中char型数据在内存中的存储形式是什么?...

    在c语言中char型数据在内存中的存储形式是ASCII码.在C语言中,char型数据是将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单 ...

  4. 素数在c语言表达能力,巧用C语言中的Continue语句解决数论中的问题

    .#0 福建电脑!""#年第$%期 巧用!语言中的!"#$%&'(语句解决数论中的问题 杨爱梅 !河南工业大学河南郑州"#$$#%& !摘要!运 ...

  5. c语言 recv_sin,C++_C语言中经socket接收数据的相关函数详解,recv()函数: 头文件:#incl - phpStudy...

    C语言中经socket接收数据的相关函数详解 recv()函数:头文件: #include #include 定义函数: int recv(int s, void *buf, int len, uns ...

  6. c语言中std::map_在现代C ++中明智地使用std :: map

    c语言中std::map std::map and its siblings(std::multimap, std::unordered_map/multimap) used to be my fav ...

  7. c语言中的if语句_If ... C中的其他语句解释

    c语言中的if语句 Conditional code flow is the ability to change the way a piece of code behaves based on ce ...

  8. c语言中point的用法_C/C++中 *和amp;的爱恨情仇

    C++中&和*的用法一直是非常让人头疼的难点,课本博客上讲这些的知识点一般都是分开讲其用法的,没有详细的总结,导致我在这方面的知识结构格外混乱,在网上找到了一篇英文文章简单总结了这两个符号的一 ...

  9. r语言中的while循环_R编程中的While循环

    r语言中的while循环 In addition to the for loop we discussed earlier, R also offers another kind of loop to ...

最新文章

  1. 单元测试案例(白盒测试)
  2. Ubuntu18.04安装JDK1.8和maven3
  3. ie6 ie7下使用clear不能将浮动的元素换行问题
  4. 一个简单的重命名,在git中也有这么多学问
  5. SQL Server 阻止组件 xp_cmdshell
  6. 带有权限设置的Excel协同编辑
  7. paip.修复文件关联总结
  8. LAIC2022司法人工智能挑战赛 - 司法文本小样本多任务Baseline
  9. 从有状态应用(Session)到无状态应用(JWT),以及 SSO 和 OAuth2
  10. 【不仅仅是程序员】——公司的沉淀是什么(2)
  11. ​创业10年的领导口出狂言:80后该退出IT行业!网友怒怼!
  12. 集成学习(二)——Bagging
  13. turn.js学习手册
  14. 拿下计算机三级证以后能干嘛,计算机三级证书用处
  15. ffmpeg解析视频的每一帧(java )
  16. 马克思主义理论-资本主义的发展及趋势
  17. android如何设置离线地图优先,高德地图离线导航优先怎么设置-高德地图离线导航优先的设置方法 - 河东软件园...
  18. 在iPhone里玩电路设计:3D版电子电路沙盒上线,支持Arduino,真实还原1000+组件...
  19. pintia 7-25 最优二叉搜索树
  20. 中国数字签名行业市场供需与战略研究报告

热门文章

  1. VUE-flex布局之align-content多交叉轴对齐方式(6)
  2. win10安装Ubuntu双系统超级详细教程(UEFI启动模式)
  3. 天润云再恢复上市进程:2021年利润下滑七成,称未来业绩增长放缓
  4. 互联网校招简历这样写,找工作才好找哦!
  5. SpringBoot集成EMail
  6. ubuntu22从双系统开始到深度学习环境搭建+必备软件安装
  7. Java中JRE指什么呢?
  8. HDU3527(杭电)spy问题
  9. 一文带你了解爆火的Chat GPT
  10. windows黑窗口启动jar包常用命令