日期数据结构编程书的可信度

时间:2012-10-17 20:45:11

标签: c++ algorithm sorting

我最近从我的本地图书馆租了一本书来获取c ++,书名是:“用c ++中的标准模板库进行数据结构编程”,作者是Joseph Bergin。问题是当我查看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;
    }
}

此代码使用奇怪的方法进行选择排序。指针可以很容易地用普通值替换,但本书喜欢使用指针和odly格式化循环。这个代码从现代C ++ 11方法到数组的选择排序有多远?

*他们还用_前缀声明所有变量,这对变量有什么特别之处吗?声明的变种的例子:

int _Num1;
float _Select;

2 个答案:

答案 0 :(得分:2)

我向你们保证今天所有被称为优秀程序员的人都会从那些日期(甚至在此之前)阅读书籍,所以我认为这不会对你造成伤害,因为它是关于概念和概念永远不会发生巨大变化的,但如果你能找到一本较新的书,它会很棒!

答案 1 :(得分:2)

你应该得到一本新书,但这并不意味着你当前的书必然是有害的。

C ++语言由标准定义,该标准由国际委员会编写。编译器在不同程度上实现了该标准,但它们都或多或少地遵循C ++标准。

自1998年以来,已经产生了一个而不是两个新标准 - 一个在2003年(通常称为C ++ 03),另一个刚刚在2011年(C ++ 11)。 1998年存在的基本习语今天依然具有相关性,因此学习这些习语仍然很重要。但是标准库已经发生了很大的变化,包括许多人(错误地)称之为“STL”的标准库部分。随着我们对语言的经验不断增长,1998年已有许多成语得到了改进,并且在C ++ 11中有一些新的成语在1998年是不可能的。

有一个很好的Wikipedia article列举了C ++ 11和C ++ 03之间的许多差异,而且从1998年起C ++中的差异也更大。

这是我读过的一本新书。 The C++ Standard Library: A Tutorial and Reference (2nd Edition)