2

据我了解,如果我使用小于 (<) 等运算符比较两个字符串,C++ 将按字典顺序比较它们。我想利用这个通过数组搜索并返回最小的字典值。因为我使用临时值来查找最小的值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为第一个字符串,然后从第二个开始搜索。

于 2013-01-10T20:47:58.153 回答