侯捷注釋源碼
① 在閱讀侯捷的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。但是當我實際應用時,一定要注意初始化,千萬不要以為侯老師這么寫,就照搬抄寫,那你一定會後悔的。作者只是重在語義,也可能是我理解錯誤。總之,此文僅供參考,如有錯誤還望來信指正,在下感激不盡。
② 侯捷是誰
侯捷是一個圖書出版人,通俗來講就是搞計算機的,他在教育方面也是蠻成功的,出版了很多圖書,也影響了很多學計算機的人。
他著有《深入淺出MFC》、《多型與虛擬》、《STL源碼剖析》、《無責任書評》三卷。
C++是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計,因而C++就適應的問題規模而論,大小由之。
C++不僅擁有計算機高效運行的實用性特徵,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。
③ 《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 同濟大學軟體學院。
④ <<STL源碼剖析>> << C++標准程序庫>>
侯捷把STL的學習比喻為三個境界:
第一境界:熟用STL
第二境界:了解泛型技術的內涵與STL的學理乃至實作
第三境界:擴充STL
這三個境界都可以使用 << C++標准程序庫>>,但是第三境界推薦使用<<STL源碼剖析>>
⑤ 【高分】《STL源碼剖析》中的代碼
1. 他給的那份代碼好像也編譯不了吧;不知道你說的想編譯看下是什麼意思。
其實用別的實現也可以看效果的,比如 stlport之類的。
2. 他所使用的就是 sgi stl ,這個應該這些年不太有變化
3. 你找份新的也可以的;我記得看過幾乎沒什麼變化的。
4. 在侯捷的網站上有;實在不行,在csdn上找找吧,應該也有的。
5. http://www.sgi.com/tech/stl/download.html
直接到這里下載一個V2.X的版本,就可以了。其剖析的也是2.x的版本
⑥ 關於台灣技術作家侯捷老師的書籍
譯著作品 《無責任書評一、二、三》、 《深入淺出MFC》、 《多型與虛擬》、 《Word排版藝術》 《STL源碼剖析》 翻譯 《Inside the C++ Object Model》 《Inside Visual C++》 《Windows 95 System Programming Secrets》 《System Programming for Windows 95》 《Essential COM》、《ActiveX controls Inside Out》 《Multithreading Applications in Win32》 《The Java Programming Language, 4/e》 《Refactoring: Improving The Design of Existing Code》 《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》 《Refactoring to Patterns》 《C++ Primer, 4/e 》 《The Art of C++》 《The Art of Java》 《Exceptional C++》 《C++ Templates: The Complete Guide》 《Practical Java Programming Language Guide》 《Modern C++ Design》 《The C++ Standard Library: A Tutorial and Reference》
麻煩採納,謝謝!
⑦ stl源碼剖析 為什麼要使用仿函數
STL(standard template libary),標准模板庫。
這是C++標準的一部分。關於這個庫有不少歷史可以說,侯捷的《STL源碼剖析》講了不少。STL有好幾種不同的實現,微軟也有自己的實現。
關於使用,比如你用了下面的語句:
#include <vector>
就是使用了標准模板庫里的 vector.
然後你這樣聲明向量:
vector<int> a; //向量a包含的元素是int型的
vector<double> b; //向量b包含的元素是double型的
你可以查找對應的頭文件,它們都是以源碼形式出現的,不過裡面的符號定義的讓人眼花繚亂,還是找書看比較好。
標准模板庫包含了數據結構和演算法等方面的內容,比較復雜,學習之前要有十足下信心。
⑧ 誰有 侯捷 著的 STL源碼剖析 pdf 版 發我一份吧。 郵箱 [email protected] 要全書的,不是就前幾章。
STL.源碼剖析.pdf
請查收
⑨ 有沒有關於C++開源軟體解析的書籍
「開源軟體解析」?你的意思是源碼剖析or源碼閱讀方法?
我所知道的(眼界有限,見笑了)純粹C++的有:
《STL源碼剖析》(作者侯捷,深入淺出剖析地STL源碼的組織結構及其細節,值得推薦)
《C++網路編程 第一卷》(書的作者就是ACE的作者,主要向我們展示ACE的設計理念,如果你對網路編程不感興趣,可以不用看)
關於源碼閱讀方法,我所知的有:
《代碼閱讀方法與實際》(書中列舉了大量NetBSD的源碼)
Linux源碼方面的書貌似有不少,Apache,Nginx的源碼書也有不少;這些好像都是純C寫的。
不過想要讀懂這些和特定領域有關的開源代碼,光有語言基礎是不夠的,還有足夠的「領域知識」。讀任何操作系統源碼前你起碼應該知道其上的API如何使用,讀web伺服器源碼前你起碼要知道TCP,HTTP協議的區別與聯系,讀物理引擎的源碼前你起碼要有高中物理的知識儲備和線性代數的基礎
⑩ 《C++ template》(侯捷譯)這本書適合在什麼階段看
書什麼時候都是一樣的 ,你先看哪個都有包含的東西,看這本書不會的東西,在下本書就會有,一樣,只不過就是在這個基礎上的一個擴充。應該從簡單的看起有個初始概念,後面遇到,就會有印象!!