cstl源碼剖析
1. 《STL源碼剖析》pdf下載在線閱讀,求百度網盤雲資源
《STL源碼剖析》侯捷電子書網盤下載免費在線閱讀
鏈接:
書名:STL源碼剖析
作者名:侯捷
豆瓣評分:8.7
出版社:華中科技大學出版社
出版年份:2002-6
頁數:493
內容介紹:
學習編程的人都知道,閱讀、剖析名家代碼乃是提高水平的捷徑。源碼之前,了無秘密。大師們的縝密思維、經驗結晶、技術思路、獨到風格,都原原本本體現在源碼之中。這本書所呈現的源碼,使讀者看到vector的實現、list的實現、heap的實現、deque的實現、Red Black tree的實現、hash table的實現、set/map的實現;看到各種演算法(排序、查找、排列組合、數據移動與復制技術)的實現;甚至還能夠看到底層的memory pool和高階抽象的traits機制的實現。
作者介紹:
侯捷,出生於1961年09月28日,台南縣柳營鄉人,南京大學客座教授。第一次在大陸大學授課: 南京大學軟體學院 and 同濟大學軟體學院。
2. 有關C++ STL 方面的書哪些比較好
《Effective STL》,《STL 源碼剖析》 ,英文的《The C++ Standard Library — a Tutorial and Reference》
STL源碼剖析
學習編程的人都知道,閱讀、剖析名家代碼乃是提高水平的捷徑。源碼之前,了無秘密。大師們的縝密思維、經驗結晶、技術思路、獨到風格,都原原本本體現在源碼之中。在你仔細推敲之中,迷惑不解之時,恍然大悟之際,你的經驗、思維、視野、知識乃至技術品位都會獲得快速的成長。
本書所呈現的源碼,使你踏上了基度山島。源碼之前了無秘密,你將看到vector的實現、list的實現、heap的實現、deque的實現、Red Black tree的實現、hash table的實現、set/map的實現;你將看到各種演算法(排序、查找、排列組合、數據移動與復制技術)的實現;你甚至能夠看到底層的memory pook和高階抽象的traits機制的實現。
3. 《STL源碼剖析》還能看嗎C++標准中 STL 只是加入了新的庫,而不是重寫
當然可以看。學習stl的實現原理的目的,是學習編程範式、技巧、語言的深入理解等過程。且不說c++ 11引入的新特性,只不過是一些語法糖,目前在工業界並沒有普及開來。學習語言應該不僅僅限於學習語法本身,更重要的是背後的設計思想。這些思想,不管c++、python還是java等,都是通用的原理。
4. 【高分】《STL源碼剖析》中的代碼
1. 他給的那份代碼好像也編譯不了吧;不知道你說的想編譯看下是什麼意思。
其實用別的實現也可以看效果的,比如 stlport之類的。
2. 他所使用的就是 sgi stl ,這個應該這些年不太有變化
3. 你找份新的也可以的;我記得看過幾乎沒什麼變化的。
4. 在侯捷的網站上有;實在不行,在csdn上找找吧,應該也有的。
5. http://www.sgi.com/tech/stl/download.html
直接到這里下載一個V2.X的版本,就可以了。其剖析的也是2.x的版本
5. 學習stl源碼剖析前需要先看哪些東西
《STL源碼剖析》不是講怎麼樣使用STL和STL技巧的,是關於STL核心代碼的剖析,是面向有豐富經驗的STL程序員來補充和更好的理解STL底層核心機制,初學者看這本書的話基本上是一頭霧水,建議先從基礎學起,C++標准程序庫 和C++stl是比較好的入門且使用的書籍,以後有了一定的STL經驗,再去研究STL源碼剖析,相信那時候你就會有了另一番對STL的領悟。
6. <<STL源碼剖析>> << C++標准程序庫>>
侯捷把STL的學習比喻為三個境界:
第一境界:熟用STL
第二境界:了解泛型技術的內涵與STL的學理乃至實作
第三境界:擴充STL
這三個境界都可以使用 << C++標准程序庫>>,但是第三境界推薦使用<<STL源碼剖析>>
7. 初學者可以看得懂《STL源碼剖析》嗎
《STL源碼剖析》不是講怎麼樣使用STL和STL技巧的,是關於STL核心代碼的剖析,是面向有豐富經驗的STL程序員來補充和更好的理解STL底層核心機制,初學者看這本書的話基本上是一頭霧水,建議先從基礎學起,C++標准程序庫 和C++stl是比較好的入門且使用的書籍,以後有了一定的STL經驗,再去研究STL源碼剖析,相信那時候你就會有了另一番對STL的領悟。
8. stl源碼剖析 為什麼要使用仿函數
STL(standard template libary),標准模板庫。
這是C++標準的一部分。關於這個庫有不少歷史可以說,侯捷的《STL源碼剖析》講了不少。STL有好幾種不同的實現,微軟也有自己的實現。
關於使用,比如你用了下面的語句:
#include <vector>
就是使用了標准模板庫里的 vector.
然後你這樣聲明向量:
vector<int> a; //向量a包含的元素是int型的
vector<double> b; //向量b包含的元素是double型的
你可以查找對應的頭文件,它們都是以源碼形式出現的,不過裡面的符號定義的讓人眼花繚亂,還是找書看比較好。
標准模板庫包含了數據結構和演算法等方面的內容,比較復雜,學習之前要有十足下信心。
9. 在閱讀侯捷的STL源碼剖析中遇到的」__VALUE_TYPE「
您好,#include <iostream>
#include <vector>
using namespace std;
int main()
{
int ia[5] = {0,1,2,3,4};
vector<int> x;
vector<int>::iterator ite;
x.insert(ite, ia, ia+5); //insert()
retrun 0;
}
出錯的原因是在定義ite時沒有初始化ite。當調用此型insert函式時(當然調用insert(int value)不會出錯,它不使用ite),它認為正確初始化了ite(ite此時為無效值,因為沒有初始化),所以當它向ite所指向的內存存放數據時出現非法訪問。當你在聲明vector<int>::iterator ite時進行了正確的初始化就不會出錯了。
vector<int>::iterator ite = x.begin();
書寫此文可能有小題大作之嫌,這里指的錯誤是不初始化指針,但在本例子沒有出現非法訪問,因為它根本就沒有使用ite。但是當我實際應用時,一定要注意初始化,千萬不要以為侯老師這么寫,就照搬抄寫,那你一定會後悔的。作者只是重在語義,也可能是我理解錯誤。總之,此文僅供參考,如有錯誤還望來信指正,在下感激不盡。
10. STL源碼剖析怎麼樣
STL很龐大,本書很好地萃取出了STL的主要內容(不考慮異常,多線程等相關代碼),並加以詳略得宜的剖析,讓人覺得STL原來如此簡單。因為是STL組件本身就有很多類似的地方,所以侯先生的行文大量復用之前文字(有時完全粘貼,有時稍作改動),讀起來像讀優秀代碼一般痛快。