3

スタックオーバーフロー フォーラムの皆さん、こんにちは。テキスト ブックから直接このコードを入力しました。絶対 C++ 第 4 版 Savitch ISBN-13: 978-0-13-136584-1。一般的な並べ替え関数。728 ページの sort.cpp は、17 行目にエラーを表示します: 行 17: エラー: 'template' の前に初期化子が必要

テキストブックが「うまく機能する」と期待しているので、誰かが助けてくれますか? はい、調査しましたが、ジェネリック テンプレートを学習することを期待して、ハッシュテーブルを学習することを期待して、ジェネリック ソート関数のより単純な学習ポイントに集中しているため、このエラーの調査は限られています...phewww、呼吸する。

エラーが発生した 17 行目を太字にすることができません。

// This is the file sort.cpp.
template<class T>
void sort(T a[], int numberUsed)
{
    int indexOfNextSmallest;
    for (int index = 0; index < numberUsed - 1; index++)
    {//Place the correct value in a[index]:
        indexOfNextSmallest =
            indexOfSmallest(a, index, numberUsed);
        swapValues(a[index], a[indexOfNextSmallest]);
    //a[0] <= a[1] <=...<= a[index] are the smallest of the original array
    //elements. The rest of the elements are in the remaining positions.
    }
}
template<class T>
void swapValues(T& variable1, T& variable2)
template<class T>
int indexOfSmallest(const T a[], int startIndex, int numberUsed)
{
    T min = a[startIndex];
    int indexOfMin = startIndex;
    for (int index = startIndex + 1; index < numberUsed; index++)
        if (a[index] < min)
        {
            min = a[index];
            indexOfMin = index;
            //min is the smallest of a[startIndex] through a[index].
        }
    return indexOfMin;
}
4

2 に答える 2

6
template<class T>
void swapValues(T& variable1, T& variable2);
                                         ^^^^^^
template<class T>
int indexOfSmallest(const T a[], int startIndex, int numberUsed)

;関数の after 宣言が欠落しているようですswapValues()

余談ですが、関数宣言が2つの関数定義の間、特にそれを使用する関数の後にぶら下がっている理由がわかりません。

于 2012-05-25T04:10:48.430 に答える
0

ここでセミコロンを見逃したと思います

void swapValues(T& variable1, T& variable2);

于 2012-05-25T04:11:34.387 に答える