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

Решение

Вы можете использовать std::min_element алгоритм, который будет использовать обычный оператор меньше, чтобы извлечь итератор для наименьшего элемента в диапазоне. Это полностью исключает необходимость написания этой функции самостоятельно.

Надеюсь это поможет!

9

Другие решения

Просто установите smallest к первой строке, затем начните поиск на второй.

4

По вопросам рекламы [email protected]