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

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

很急!谢谢各位高手帮忙!谢谢!

<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++自带的头文件一般用<>,而自己写

的程序头文件用""
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-05
不带.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;
第3个回答  2009-05-05
标准模板库里的链表类和字符串类,主流用法呀,这都不会还说会c++?
相似回答