在C++中,如#include<list>这类头文件是什么意思?

在C++编程时,有时会用到如#include<list>、#include<string>等这类有文件,他们都是什么意思?跟带“.h”的文件有什么区别?在什么时候用这一类... 在C++编程时,有时会用到如#include<list>、#include<string>等这类有文件,他们都是什么意思?跟带“.h”的文件有什么区别?在什么时候用这一类有文件呢?他的作用是什么?

很急!谢谢各位高手帮忙!谢谢!
展开
 我来答
123123lx
推荐于2017-09-03 · TA获得超过3704个赞
知道小有建树答主
回答量:648
采纳率:0%
帮助的人:356万
展开全部
<stdio.h>是C的...
在C++中是用
<cstdio>表示来源是C的标准库

<iostream.h>和 <iostream>
都是C++的前者是老的,后者是新的

最好玩的是string

string.h和cstring是表示C的这个
string是表示C++的一个string类的头文件

.h 是 C/C++ 头文件的常用后缀

stdio.h 是 C 语言标准库的头文件

iostream.h 是 C++ 旧版本的头文件,没有使用 namespace

iostream 是新版本的 C++ 标准库头文件,使用 namespace

推荐用新的版本,即 iostream,因为最新的编译器里已经没有兼容 iostream.h

在C++标准推出前的头文件都是带.h的

在c++标准推出后问文件都是不带.h的
但是一些编译器还是保留了原来.h的头文件,2者虽然没有太大差别(是有差别的),但是还是建议使用不带.h的

而在标准后,c++为了作出统一,将原来c的标准头文件在其名字前都加了c比如stdio.h就变成了cstdio
但还是保留了原来的头文件的使用方式

所以你如果使用c中的标准头文件
可以用
#include <stdio.h>或者#include <cstdio>
如果使用C++标准头文件
那就使用
#include <iostream>

但是一些编译器的头文件是在c++标准未出台前的
因此不提供省略.h的版本
因此只能使用
#include <iostream.h>

像这个代码:

#include "stdafx.h"

#include <iostream> //这里不能写 <iostream.h>,否则编不过
using namespace std;

#include <stdio.h> //这里又能写 <stdio>反而不行
#include <afx.h>
void main()
{
CString st1;
st1="Hello World.";
cout < <st1;
}

看上面注释了的两句,iostream那句一定要写成不带.h的,stdio那句又一定要写成带.h的。这不是很矛盾吗?怎么解释?

希望你也注意到" "和< >的区别。

#include "stdafx.h"----->stdafx.h非标准库文件,所以用"",并且用.h

#include <iostream> //这里不能写 <iostream.h>,否则编不过
using namespace std;

#include <stdio.h> //这里又能写 <stdio>反而不行----->应该用<cstdio>
#include <afx.h> //这个是MFC里面的。我不熟悉。

#include <iostream>与#include <iostrea.h>有什么区别,
我一般用的是#include <iostream.h> 我不知道什么时候用#include <iostream>
谁知道告诉我一下
推荐用 <iostream>
<iostream.h> 是 98 年 C++ 标准出来之前的库,现在都是为与遗留代码保持兼容而提供的。
有两个主要问题:
首先,标准 C++ 的库都处于 ::std 名字空间之内,而老的库是直接把东西放在全局名字空间 :: 内的。
第二,iostream.h 的流库以前不是模板,而标准库中的都是模板。

使用方式变化不大,除了要注意名字空间的使用。比如
cout << endl;
std::cout << endl;

或者用 using 声明 或 using 指令 使代码可以直接使用原来的语法形式。

假设一个头文件 Header.h

#include "header.h" 默认从当前目录开始搜索

#include <header.h> 则从系统目录开始搜索

所以,对于c++自带的头文件一般用<>,而自己写

的程序头文件用""
prctaotao
2009-05-05 · TA获得超过237个赞
知道小有建树答主
回答量:247
采纳率:0%
帮助的人:123万
展开全部
不带.h的头文件是ISO 98 C++新规定的。原先在C语言里带.h。Bjare S.认为这是多余的。于是标准中就灭了。C++从原先C语言里继承的库都在前面加C,如:
#include<cmath>
#include<cstring>//提供一批如strcmp之类的c样式函数。

#include<list>//是C++ 标准模板库 STL中的一种。是链表的模板,提供各种函数。
#include<string>//是C++的字符串库。注意和#include<cstring>是不一样的。

新版头文件必须限定名字空间才能用标准的函数:
using namespace std;

总之把你看到的 #include<*.h>改成:
#include<*> //如果是C库,改成#include<C*>试试,有的不一定继承到C++了。
using namespace std;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忘至白葬不情必0T
2009-05-05 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiapeng70
2009-05-05 · TA获得超过178个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:109万
展开全部
标准模板库里的链表类和字符串类,主流用法呀,这都不会还说会c++?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式