我最近從我本地的C++庫中租借了一本書,書名是:Joseph Bergin的「用C++標準模板庫進行數據結構編程」。問題是,當我查閱1998年的出版日期時,鑑於今天電腦進步的速度,這是一個非常大的時間框架。這本書會傷害我還是幫助我?以下是我的書中算法的摘錄:過時的數據結構編程書籍的可信度
// THIS IS AN ALGORITHM EXPLAINED AS SELECTION SORT
template <class T>
void selectionSort(T* start, T* end) //first off, i notice an excessive use of pointers, when usually
{ for(T* where = start ; where < end ; where++) // im told to work around pointers if i dont need to use them
{ T* loc = where; //weird bracket formatting(old practice i would guess?)
T small = *loc;
for //very strange method of organizing for loops used in the book
( T* inner = where + 1;
inner < end;
inner++;
)
if(*inner < *loc)
{ loc = inner;
small = *loc;
}
*loc = *where;
*where = small;
}
}
此代碼使用奇怪的方法進行選擇排序。指針可以很容易地用正常值替換,但本書喜歡使用指針,並且使用格式化爲循環。這個代碼從現代C++ 11方法到數組選擇排序有多遠?
*他們還用_前綴聲明瞭所有的變量,這是否對變量做了特殊的處理?聲明瓦爾的例子:
int _Num1;
float _Select;
去年發佈了一個新的C++標準,所以標準庫(舊STL的後繼者)現在包含哈希表。當談到基本的數據結構時,計算機的速度可能並不重要;線性搜索仍然太慢:) –
我認爲這本書可以學習基礎知識並更好地理解各種概念。然後你可以得到一本更新的書(也許是提升?)或者使用互聯網或編譯器手冊頁。 –