最近、地元の図書館からc ++用の本を借りました。本のタイトルは、JosephBerginによる「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;