如何學好C++庫類?
在C++的開發(fā)環(huán)境里,C++庫占有的地位是很高的,在現(xiàn)實生活中,C++庫的種類也非常的廣泛,解決的問題也是因不同的問題制定出不同的解決方案,希望大家能夠切磋學習。
庫從輕量級到重量級的都有。不少都是讓人眼界大開,亦或是望而生嘆的思維杰作。由于庫的數(shù)量非常龐大,而且限于筆者水平,其中很多并不了解。所以文中所提的一些庫都是比較著名的大型庫。
標準庫
標準庫中提供了C++程序的基本設(shè)施。雖然C++標準庫隨著C++標準折騰了許多年,直到標準的出臺才正式定型,但是在標準庫的實現(xiàn)上卻很令人欣慰得看到多種實現(xiàn),并且已被實踐證明為有工業(yè)級別強度的佳作。
Boost 庫是一個經(jīng)過千錘百煉、可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化進程的發(fā)動機之一。 Boost庫由C++標準委員會庫工作組成員發(fā)起,在C++社區(qū)中影響甚大,其成員已近2000人。 Boost庫為我們帶來了最新、最酷、最實用的技術(shù),是不折不扣的"準"標準庫。
Boost 總體來說是實用價值很高,質(zhì)量很高的庫。并且由于其對跨平臺的強調(diào),對標準C++的強調(diào),是編寫平臺無關(guān),現(xiàn)代C++的開發(fā)者必備的工具。但是Boost 中也有很多是實驗性質(zhì)的東西,在實際的開發(fā)中實用需要謹慎。并且很多Boost中的庫功能堪稱對語言功能的擴展。
其構(gòu)造用盡精巧的手法,不要貿(mào)然的花費時間研讀。Boost另外一面,比如Graph這樣的庫則是具有工業(yè)強度,結(jié)構(gòu)良好,非常值得研讀的精品代碼,并且也可以放心的在產(chǎn)品代碼中多多利用。 #t#
再次體現(xiàn)了C++保持核心語言的效率同時大力發(fā)展應用庫的發(fā)展趨勢!!在C++中,庫的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了設(shè)計庫來擴充功能要好過設(shè)計更多的語法的言論。
現(xiàn)實中,C++的庫門類繁多,解決的問題也是極其廣泛,庫從輕量級到重 量級的都有。不少都是讓人眼界大開,亦或是望而生嘆的思維杰作。由于庫的數(shù)量非常龐大,而且限于筆者水平,其中很多并不了解。所以文中所提的一些庫都是比 較著名的大型庫。
還有很多非常激動人心或者是極其實用的C++庫,限于我們的水平以及文章的篇幅不能包括進來。在對于這些已經(jīng)包含近來的庫的介紹中,由于并不是每一個我們都使用過,所以難免有偏頗之處,請讀者見諒。
C++的復雜性始終是一個不可回避的現(xiàn)實。C++中有大量的陷阱和缺陷,后者導致了數(shù)目驚人的慣用法workarounds。不加選擇的全盤預先學習,是非常糟糕的做法,不僅低效,而且根本沒有必要,實在是浪費生命。愛因斯坦曾經(jīng)說過,“我只想知道‘他’(宇宙)的設(shè)計理念,其它的都是細節(jié)”。
然而,正如另一些讀者指出的,如果對C++中的這些細節(jié)事先一點都沒有概念的話,那么實際編碼中一旦遇到恐怕就變成沒頭蒼蠅了,也許到哪里去RTFM都不知道。這也是為什么那么多C++面試都會不厭其煩地問一些有代表性的語言細節(jié)的原因。
把細節(jié)全盤裝在腦子里固然不好,但對細節(jié)一無所知同樣也不是個辦法。那么對于C++庫來說,在學習中究竟應該以怎樣的態(tài)度和學習方法來對付C++的復雜性呢?
其實答案也非常簡單,首先有一些很重要&必須的語言細節(jié)&特性是需要掌握的,然后我們只需知道在C++中大抵有哪些地方有復雜性(陷阱、缺陷),那么遇到問題的時候。
【編輯推薦】