C++標準庫學習

1、C++庫中有哪些組件

       ※標準C庫

            它還在,你可以用它,雖然有些地方有點小的修改,但是無論如何還是用了多年的C庫。

       ※iostream庫

           和傳統的iostream的實現相比,它已經被模糊化了,繼承層次結構也做了修改,增強了拋出異常的能力,可以支持string和國際化。當然,你期望的iostream庫具有的功能幾乎全部

           繼續存在。也就是說它還是支持流緩衝區,格式化標示符,操作子和文件,還有cin,cout,cerr,和clog對象。這意味着可以把string和文件當做流,還可以對流的行爲進行更廣泛

           的控制,包括緩衝和格式化。

       ※string庫

           string對象在大多數應用中被用來消除對char指針的使用。它支持你期望的那些操作,他們也可以轉化爲char*,以保持和現有代碼的兼容性,他們還自動處理內存管理。一些string

           的實現運用了引用計數,這會帶來比char*的字符串更佳的性能。

       ※容器庫

          不要再寫自己的基本容器類。標準庫提供了以下高效的實現:vector(就像動態可擴充的數組),list(雙鏈表),queue,stack,deque,map,set和bitset。唉,竟然沒有hash

         table,不過多少可以補償一點的是,string是容器,這很重要,因爲這意味着對容器的所有操作對string都是可用的。

         什麼?你不明白爲什麼說標準庫的實現是高效的?很簡單,標準庫規定了每個類的接口,而且每條接口規範中的一部分是一套性能保證。所以,舉例子來說,無論vector類的實現

         是如何的,僅僅提供對它的元素的訪問是不夠的,還必須提供常量時間內的訪問。如果不這樣就不是一個有效的vector實現。

        很多C++程序中,動態分配數組和字符串導致大量使用new和delete,new/delete的使用不正確會導致出現內存泄露。如果使用string和vector對象,而不使用char*和動態分配數

        組的指針,很多的new和delete就可以免於使用,他們所帶來的問題也會隨之消失。

        ※算法

        標準容器當然好,如果存在易於使用他們的方法就更好。標準庫提供了大量的簡易方法(既預定義函數,官方稱爲算法algorithm)。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章