1. 程式人生 > >using namespace std的作用

using namespace std的作用

C++程式設計時幾乎每次都敲上  using namespace std;

但這行程式碼究竟有什麼作用呢?

       C++標準程式庫中的所有識別符號都被定義於一個名為std的namespace中。早些的編碼將標準庫功能定義在全域性空間裡(所以並不需要註明使用什麼名稱空間),宣告在帶.h字尾的標頭檔案裡。C++標準為了和C區別開,也為了正確地使用名稱空間,規定標頭檔案不使用字尾.h。因此,當使用<iostream.h>時,相當於在C中呼叫庫函式,使用的是全域性名稱空間,也就是早期的C++實現。當使用<iostream>時,該標頭檔案沒有定義全域性名稱空間,必須使用namespace std,指明在哪裡的名稱空間,這樣才能使用類似於cout這樣的C++識別符號。

由於namespace的概念,使用C++標準程式庫的任何識別符號時,可以有三種選擇:
1.直接指定識別符號
例如:
std::iostream而不是iostream。完整語句如下: std::cout << std::hex << 3.4 << std::endl;
2.使用using關鍵字
例如:
using std::cout; using std::endl; using std::cin; 以上程式可以寫成如下程式碼:
using std::cout <<using std::hex << 3.4 <<using std:: endl;
3.使用using namespace std


例如:
#include<iostream>
#include<sstream>
#include<string>
using namespace std;
這樣名稱空間std內定義的所有識別符號都有效(曝光)。就好像它們被宣告為全域性變數一樣。

相關推薦

using namespace std作用

C++程式設計時幾乎每次都敲上  using namespace std; 但這行程式碼究竟有什麼作用呢?        C++標準程式庫中的所有識別符號都被定義於一個名為std的namespace中。早些的編碼將標準庫功能定義在全域性空間裡(所以並不需要註明使用什麼名稱

using namespace std;的註意事項

sin it is you 名稱 plus 有助於 多個 例如 目的 作者:zhang.jingjing鏈接:轉自 https://www.zhihu.com/question/26911239/answer/51503880來源:知乎 因為使用STL中 有部分名稱是沒

LLVM是什麽以及其編程規範中關於using namespace std的思考

總結 name mage 及其 以及 編譯 cnblogs img 而在 1. LLVM和JVM的對比 JVM是一套規範,並不特指具體的實現,而JVM是一套具體的實現。 JVM一般是作為整體為用戶提供Java運行時環境的,並不拆開來用。LLVM可從其中抽出部分做靜態編譯

沒有躲過的坑--使用using namespace std的壞習慣【轉】

(轉自:https://blog.csdn.net/wangshubo1989/article/details/50061311?utm_source=blogxgwz9) 使用名稱空間的目的是對識別符號的名稱進行本地化,以避免命名衝突。 在C++中,變數、函式和類都是大量存在的。如果沒有名

名稱空間(解決了為什麼使用using namespace std;的疑惑)

名稱空間是用來組織和重用程式碼的編譯單元。NameSpace(名字空間),是為了解決命名衝突的問題而引入的概念。通過使用 namespace xxx(就是xxx使用的範圍),你所使用的庫函式或變數就是在該名字空間中定義的,這樣一來就不會引起不必要的衝突了。C++標準程式庫中的所有識別符號都被定義於一

03-樹1 樹的同構#include #include using namespace std; typedef char ElemType; #define

03-樹1 樹的同構 (25 point(s)) 給定兩棵樹T1和T2。如果T1可以通過若干次左右孩子互換就變成T2,則我們稱兩棵樹是“同構”的。例如圖1給出的兩棵樹就是同構的,因為我們把其中一棵樹的結點A、B、G的左右孩子互換後,就得到另外一棵樹。而圖2就不是同構的。

[C++] 標頭檔案中不要用using namespace std

先總結下:   1. using namespce std;儘量不要(或者強硬一點,不許)在標頭檔案中使用。     解析: 不讓這麼用,主要原因就是防止名字重複(即自定義變數名和std中名字重複),因為標頭檔案會被很多地方使用,你不知道這個using能覆蓋多大範圍。 &

using namespace std;的講解(轉載)

所謂namespace,是指識別符號的各種可見範圍。 C++標準程式庫中的所有識別符號都被定義於一個名為std的namespace中。 由於namespace的概念,使用C++標準程式庫的任何識別符號時,可以有三種選擇: 1、直接指定識別符號。例如std::ostream而不是ostream。完整語句如下

差評using namespace std;

記得以前剛開始學習c++的時候,總是習慣性的把需要的標頭檔案#include完,然後很自然的來一句using namespace std; 當然,有另外的兩種方法完全可以取代這個using namespace std;而且在很多的情況下都要好一點 方法1:用具

關於using namespace std;的淺談

《C++ Primer Plus (第六版 中文版 人民郵電出版社)》第九章:記憶體模型和名稱空間 第328頁: "有關using編譯命令和using宣告,需要記住的一點是,他們增加了名稱衝突的可能性。" 《C++ Primer Plus (第六版 中文版 人民郵電出版社)》第九章:記憶體模型和名稱空間 第3

[轉載]C++之using namespace std 詳解與命名空間的使用

單元 編譯器 void 名字空間 導致 程序 支持 使用 輸出 來源:https://blog.csdn.net/Bruce_0712/article/details/72824668 所謂namespace,是指標識符的各種可見範圍。C++標準程序庫中的所有標識符都被定

namespace作用及用法

所有 編譯 names 關鍵字 運行 exp div 能夠 例如 namespace   所謂namespace,是指標識符的可見範圍。C++標準庫中的所有標識符都被定義在一個名為 std 的namespace 中。 一、<iostream>和<iost

【轉】C++名稱空間 namespace作用和使用解析

一、 為什麼需要名稱空間(問題提出)     名稱空間是ANSIC++引入的可以由使用者命名的作用域,用來處理程式中 常見的同名衝突。    在 C語言中定義了3個層次的作用域,即檔案(編譯單元)、函式和複合語句。C++又引入了類作用域

別再讓C++標頭檔案中出現“using namespace xxx;”

在這裡,我毫不迴避地說了這句話:  引用 我再也不想在任何標頭檔案中看到“using namespace xxx;”了 作為一個開發者/團隊領導者,我經常會去招聘新的專案成員,有時候也幫助其他組的人來面試應聘者。作為應聘流程之一,我經常要求應聘者寫一些程式碼,因此我檢查過

using namespace [ns]與 using [ns]區別

std::cout<<"xxx"<<std::endl;< div="" style="word-wrap: break-word;"> std不可以省略。 這個例子可能不是很恰當,因為std本身就是根級的名稱空間,直接using std沒有 發揮任何作用。 如下例子,

Mybatis配置檔案中mapper標籤中namespace屬性作用小結

這幾天試著搭建了SpringMVC、Spring和Mybatis的環境,深有感觸,尤其是對面向介面程式設計有了更加深層次的體會。 尤其是在持久層框架Mybatis,以前不管是Dao層還是Servi

一 : using宣告、using指示及其作用域詳解

1. using 宣告:一個using宣告一次只能引入一個名稱空間成員,從using宣告點開始,直到包含該using宣告的作用域結尾,宣告的名字僅僅在該作用域是可見的,外部作用域中相同的名字被遮蔽,它可以出現在全域性作用域,區域性作用域或者名稱空間作用域中,類中的using

Mybatis中namespace作用

注意mapper的namespace的名字是mapper物件的完整路徑名com.xiamen.mapper.PersonMapper(這樣session就可以getMapper了) 因為mybatis的作用就是:使得介面繫結成為可能 mybatis 中ma

關於Mat和using namespace cv的使用理解(一)

參考:http://blog.sina.com.cn/s/blog_74f32c400101a1ah.html 參考文件:OpenCV中Mat的詳解 之前一直再用IplImage型別,昨天接觸Mat,使用起來發現有些不一樣,函式與之前的IplImage的有一點點不一樣 經

Python學習:作用域(namespace)

pythonPython作用域基礎Python有四個作用域:L(Local)本地也稱作局部作用域;E(Enclosing)閉包函數外的函數中;G(global)全局作用域;B(Built-in)內建作用域;變量可以在三個不同的地方分配:如果一個變量在def內賦值,它被定位在這個函數之內。如果一個變量在嵌套的d