[英]What does std stands for?
我知道如果沒有using namespace std
,並且你想寫一個cout
,你需要有一個std::cout
。 std
代表什么? 為什么std
被廣泛使用( std::vector
, std::cout
, std::cin
)?
std 代表“標准”。
std
命名空間中有這么多標准的東西的原因很簡單:在命名空間之前,不同人編寫的不同代碼經常會使用相同的名稱並導致沖突。 例如,我從 1994 年開始的飲料分配器程序可能有一個流類,它是橙色ofstream
流。 當新版本的 C++ 出現並添加了作為輸出文件流的ofstream
時,我的程序將不再編譯,或者它會崩潰。
好吧,orange-fanta-stream 很傻,但主要操作系統確實有 C 函數,稱為open
、 close
和index
。 我敢肯定,很多人都試圖將全局變量稱為open
,然后他們的程序就崩潰了。
在 C++ 中,所有新的 C++ 標准的東西都在std::
中,所以只要我不在我的程序std
中調用某些東西,他們就可以在std::
中添加新的東西,它絕對不會導致這個問題。 不幸的是,C++ 從 C 繼承的所有東西都在std::
之外,所以你仍然不能創建一個名為open
的全局變量(在 Linux 上),但至少這是一個開始。
它是為 C++ 標准庫保留的命名空間。
歷史上一個不錯的選擇:任何以std
開頭的標記都保留在 C 中。這意味着早期的 C++ 編譯器不會破壞現有的 C 代碼。 當然,從那時起,語言就出現了分歧。 在詞源上, std
是標准的縮寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.