`

using namespace std

阅读更多

using namespace std详解

一、<iostream>和<iostream.h>

     <iostream>和<iostream.h>是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。
     后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。
     因此,当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。

二、namespace

     所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。
由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:

1、直接指定标识符

    例如std::ostream而不是ostream。完整语句如下:

 

std::cout << std::hex << 3.4 << std::endl;

 

2、使用using关键字

using std::cout;
using std::endl;

 以上程序可以写成

cout << std::hex << 3.4 << endl;
 

3、使用using namespace std

#include <iostream>
#include <sstream>
#include <string>
using namespace std;
  

     这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写:

cout << hex << 3.4 << endl;

     因为标准库非常的庞大,所程序员在选择的类的名称或函数名时就很有可能和标准库中的某个名字相同。所以为了避免这种情况所造成的名字冲突,就把标准库中的一切都被放在名字空间std中。但这又会带来了一个新问题。无数原有的C++代码都依赖于使用了多年的伪标准库中的功能,他们都是在全局空间下的。

      所以就有了<iostream.h>和<iostream>等等这样的头文件,一个是为了兼容以前的C++代码,一个是为了支持新的标准。

命名空间std封装的是标准程序库的名称,标准程序库为了和以前的头文件区别,一般不加".h"

分享到:
评论

相关推荐

    命名空间的使用,以及为何不用using namespace std,内含可运行代码

    using命令(本例中两种方式,对于C++标准库命名空间std,在实际用到的标识符前面采用加std::的方式,对于自己命名空间myown1,2,则使用using myown1::B的方式)比使用using编译命令(using namespace std方式,本例中...

    使用include <iostream>时一定要加using namespace std

    使用include 时一定要加using namespace std

    C++ using namespace std 详解

    C++ using namespace std 详解 C++ using namespace std 详解 C++ using namespace std 详解 C++ using namespace std 详解 C++ using namespace std 详解

    C++中的using namespace std

    using namespace std就是使用一个名字为std的namespace。这样命名空间std内定义的所有标识符都有效(曝光)。 看下面代码 #include using namespace std; int main() {  int n;  cin&gt;&gt;n;  cout&lt;&lt;n;  ...

    c++五子棋制作代码 设计

    using namespace std; const char outstr[11][4]={"┌","┬","┐","├","┼","┤","└","┴","┘","○","●"}; int com[15][15],luozi[15][15]; int c,d; void jushi() //这是判断落子重要性的函数 { int x,y,i,m,...

    C++ using namespace std 用法深入解析

    一 :和是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不...当使用的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样

    程序员面试宝典题目总结

    using namespace std; int main(int argc, char* argv[]) { int count = 0; int m = 9999; while(m){ count++; m = m & (m - 1); } cout ; return 0; } 6. 不用判断语句,找出两个数中比较大的。 7. 如何...

    #include <iostream> #include<iomanip> using namespace std;九九乘法表

    第一次编译

    c++ 面试题 总结

    using namespace std; void main() { char a[50];memset(a,0,sizeof(a)); int i=0,j; char t; cin.getline(a,50,'\n'); for(i=0,j=strlen(a)-1;i(a)/2;i++,j--) { t=a[i]; a[i]=a[j]; a[j]=t; } cout; ...

    万能头文件#include&amp;amp;lt;bits/stdc++.h&amp;amp;gt; using namespace std;

    用于ACM竞赛等,关于万能头文件在visual studio的植入,可以参考我Visual studio配置修改指南的文章

    HuffmanCoding.cpp

    using namespace std; struct HNode { int weight; int parent; int LChild; int RChild; }; struct HCode { char data; char code[1000]; }; class Huffman //哈夫曼类 { private: HNode* HTree; HCode* ...

    零基础学CC++04超简单模仿算术题

    using namespace std; int main() { cout; return 0; } 狠简单方法 #include using namespace std; int main() { cout; return 0; } 最长代码 #include using namespace std; int main() { int a,b; scanf("%d...

    基于C语言的磁盘调度算法的实现.zip

    1. 本实验是模拟操作系统的磁盘寻道方式,运用磁盘访问顺序的不同来设计磁盘的调度算法。 2. 实现的磁盘调度算法有 FCFS,SSTF,SCAN,CSCAN 和 NStepSCAN 算法。 3. 设定开始磁道号寻道范围,依据起始扫描磁道号...

    C++实现String类实例代码

    C++实现String类实例代码 ...using namespace std; class String { public: String(const char *str=NULL); String(const String &other); ~String(void); String &operator =(const String &other); priva

    勾子函数使用例子.rar

    勾子例子代码 勾子函数使用例子

    快速排序代码

    快速排序的完整实现代码。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分...

    简单C++程序设计.doc

    简单C++程序 1 比较两个数的大小 #include&lt;iostream&gt; using namespace std; int main() { double a,b,c; cout请输入两个数a,b:"; cin&gt;&gt;a&gt;&gt;b; c=a&gt;b?a:b; cout,"两个数中大数为:"; while(1); return 0; } 2 两个数...

    C++面向对象程序设计

    这是用于学习CC++编程的资源#include &lt;iostream&gt; using namespace std; int main() {cout″This″″is″;cout″a″″C++″;cout″program.″;return o;6. 分析下面程序运行的结果。 #include &lt;iostream&gt; using ...

    From C to C++

    using namespace std; const int N=200; void strUpper(char *s); void strLower(char *s); int main(){ char ms[N]; cout; cin.getline(ms,N); strUpper(ms); cout; strLower(ms); cout; return 0; } ...

Global site tag (gtag.js) - Google Analytics