C ++:使用运算符比较字符串的词典

时间:2013-01-10 20:46:49

标签: c++ string lexicographic

据我了解,如果我使用运算符比较两个字符串,比如小于(<)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;
}

2 个答案:

答案 0 :(得分:9)

您可能希望使用std::min_element算法,该算法将使用普通的小于运算符来检索范围中最小元素的迭代器。这完全消除了您自己编写此功能的需要。

希望这有帮助!

答案 1 :(得分:4)

只需将smallest设置为第一个字符串,然后从第二个字符串开始搜索。