STL為什麼採用snake case這種和其他類庫在一起時略顯違和的命名方式作為其命名風格?

時間 2021-05-31 06:13:46

1樓:「已登出」

違和不違和只是你內心的一種感覺而已,你覺得長得不太一樣的東西不應該放在一起,這樣的觀點真的正確嗎? 你為什麼抱怨STL和boost庫而不抱怨其它庫的風格不像像前兩者一樣呢?改變自己內心的狀態吧,當你能很輕鬆的接受這兩種風格混用,這叫進步,懂嗎?

2樓:CNife

這種風格不統一,個人認為主要是歷史原因,還有 C/C++ 的特殊情況。

歷史原因主要就是出現得太早,沒有規範命名的意識;規範命名的意識出現的時候,C/C++ 的歷史包袱已經太重,改不過來了。

另外就是,C/C++ 不是被某家公司掌握的語言,太過於開放,誰都沒法強制別人用自己制訂的標準,更沒法把命名規範寫進語言標準裡。

與此相對,誕生時間較晚、被一家公司掌握的語言就沒有這個問題。

3樓:王旭競

下劃線命名和駝峰命名這兩種風格都太流行了,充斥在各大語言、框架裡。盡量下劃線命名優先。事實上這兩種實在太流行,我現在已經看著混用毫無違和感了.....

4樓:Star.E

命名風格也要考慮歷史的程序。委員會已經決定了,由下劃線來當標準。

事實上無論選哪種都是可以的,互有優劣。而且STL的內部實現,也並不全用下劃線命名法

c++不少專案都用駝峰命名,其實這樣就和STL劃清了界限,閱讀起來比較容易區分,而且不容易起衝突。

個人感覺駝峰命名更短,更顯眼,更適合c++開發

為什麼 C 的 STL 如 libc libstdc 都沒有標準文件?

肖堂 數蠶 因為標準庫是有標準的,參考標準就可以了,另外他們的庫也有文件,編譯的時候可以生成。cppreference.com有近乎標準化的文件 徐辰 不正確 不規範 和 一跑就崩 之間的差別你仔細體會一下。就好比你開車上了對面車道也不一定會立刻車毀人亡對不?按照你的邏輯如果司機還活著就說明交規的設...

為什麼STL要將malloc封裝成allocator,如何理解一級和二級allocator優點?

rileyye 現在不興使用鍊錶了,allocator直接就是個封裝的new,簡單粗暴 而且 allocator 不光是能分配記憶體,還能用它分配磁碟空間。 kong 可以看下 侯捷 的 a href http www.STL原始碼剖析 裡面有詳細介紹過這個設計 黃亮anthony allocato...

STL中,為什麼遍歷map比遍歷list慢?

MashPlant 之所以沒有這樣做,我推測原因有 毫無疑問這會帶來額外的時間,記憶體開銷,對於沒有遍歷map需求的使用者來說這一開銷是沒有意義的,don t pay for what you don t use 無論是否這樣做,遍歷map都是O n 的,區別僅在於常係數,這樣做的好處僅僅在於查詢前...