2

私が理解しているように、より小さい (<) C++ などの演算子を使用して 2 つの文字列を比較すると、辞書式に比較されます。この配列の検索を利用して、最小の辞書式の値を返したいと思います。そして、最小のものを見つけるために一時的な値を使用していますstring smallest

ご覧のとおり、値を与えましたz。辞書式の値が最も高い文字/記号は何ですか? C++ で割り当てることができる、既に定義されている静的変数はありますか? これを行うときの標準は何ですか?

string VectorPQueue::extractMin() {
    string smallest = "z";
    int *count = new int;
    if (elems.size() != 0) {
        for (int i = 0; i < elems.size(); i++)
        {
            if ((elems.get(i)) < smallest) {
                smallest = elems.get(i);
                *count = i;
            }
        }

    } else {
        ErrorException("ERROR: pqueue is empty.");
        return "";
    }

    elems.remove(*count);
    printElements();
    return smallest;
}
4

2 に答える 2

9

std::min_element通常の小なり演算子を使用して、範囲内の最小要素への反復子を取得するアルゴリズムを使用することをお勧めします。これにより、この関数を独自に作成する必要が完全になくなります。

お役に立てれば!

于 2013-01-10T20:49:51.050 に答える
4

最初の文字列に設定smallestしてから、2 番目の文字列から検索を開始します。

于 2013-01-10T20:47:58.153 に答える