大專案不允許使用C STL 容器合理嗎?

時間 2021-05-05 17:15:57

1樓:邏輯

早期專案合理。因為早期stl不成熟,有各種問題,當時大專案就會自己造輪子。而經過那麼多時間,自己的輪子已經得到充分測試和驗證後,也沒有必要引入其他的相似功能的庫,並且有可能那些專案的編譯器和標準庫都還是幾年前的,你要用stl就意味著公升級編譯器,依賴編譯器版本的第三方庫也要公升級,那麼為了乙個模組的使用,並且是有現成成熟的輪子的情況下,而公升級編譯器和庫,就不太合適了,而且很多庫的老版本的某些地方的行為和現在的不一樣,公升級後可能還會出現bug。

至於跟你說不能用的原因是記憶體碎片,怕是他不了解專案和stl吧?

不過如果現在開始的專案一開始就造輪子,那就不合理了,自己造輪子都是現有解決方案不適合、有bug或者許可證的原因。

2樓:

對記憶體使用和保護特別重視的專案我覺得真的有必要禁用,其它的我覺得不一定要太多條條框框約束。比如又想用scope_pointer去保護生成的STL object,又想去把放到STL container裡面的object copy到其他地方肯定出問題的風險就比較大。

3樓:

有些上古的c++專案,連泛型也不讓用的,更不要說STL了,見多了就不奇怪了。

上古的時候,不要說STL本身有問題,連很多c++編譯器都一大堆問題,越是複雜的語法越容易出問題。避免使用特別複雜,容易出錯的語法是常識。

而且,那時候很多c++程式設計師都是從c語言轉過來的,他們有封裝,繼承和多型就已經開心的不得了 :)

4樓:

STL 是 C++ 的標準,經過這麼多年的發展已經很成熟了。

由於要考慮通用性,它對記憶體分配的策略有一些折衷,所以在某些情況下,如果直接使用預設配置會帶來效能上的下降,不過這只是因為你不會用而已,事實上,大部分情況用 reserve 就解決了。

當然,不允許用 STL 的決策說不上錯,任何決策都是有得有失的。不過下決策的人,大都以自身為基準進行決策的。專家不會用 STL,所以他帶的團隊不允許用,很合理麼。

作為專家,技術水平怎麼可以比 C++ 大拿們低?他可以自己重新發明輪子,而且是防彈免充氣的,肯定比橡膠輪好!

至於研發時間上的浪費、後期維護的困難、團隊成員的不適應,這和專家沒關係啊!時間花得越多,專家賺的錢才越多麼,你們越離不開他,他才更有價值不是嗎?

5樓:朱涵俊

為STL配接自定義的記憶體分配器沒這麼簡單,在更上一級的業務層次設計好記憶體分配是更好的選擇。對於伺服器來說,記憶體分配應該是可以預知的,比如支援多少鏈結,每個鏈結需要多少記憶體,甚至可以直接預留記憶體,取消動態分配。這個不是乙個記憶體分配演算法能夠解決的問題。

6樓:丁冬

聽說理由是跑久了記憶體碎片問題,這合理嗎?

合理。STL不保證預設的記憶體管理策略最合適你的專案。

但最合適的解決方案不是禁用STL,而是為STL配接自定義的記憶體分配器。

為什麼美術聯考中不允許使用畫架子?

布甘 去年聯考的,座標河南 還是第一次看到這樣的問題 v 想了想覺得還是擺放為主 因為聯考是分散考點嘛,恰好我們這裡人還挺多,畫架需要自帶而凳子就不用,這樣一來布置考場就會直接把凳子依照考號擺放 畫架是自帶的,就沒辦法保證統一啦.說不定還為因為位置問題而耽擱時間 而且!不光是聯考!我們這裡的廣美考點...

健身房部分器械不允許非私教會員使用?

愛健身的呂哥 首先,這種情況也可以理解。私教會員畢竟是交了錢的,當然會有一定的優待。其次,在我所在健身房,除非你做HIIT,可能需要用到私教那些器材。如果是力量訓練的器材,私教也要跟普通會員一樣排隊使用的。應該不存在這個問題吧。如何應對呢?第一,你可以請一段時間私教,完了以後不續了,那些私教看你在裡...

為什麼現在正式中文中不允許使用疊字符號(重文號) ?

大家都說了蠻多,我這裡舉個例子。王力 中原音韻音系序 1981年6月28日 這是中國著名語言學家王力先生為晚輩楊耐思先生的 中原音韻音系 寫的序言,原書按影印件排印,因此我們得以親見手跡。你可以說王力先生正體俗體混用 姓氏 羅 趙 陸 楊 都是俗體,為 時 漢 是俗體,類 有俗體有正體 寫字超出格仔...