As I understand it if I compare two strings using the operators like the lesser-than (<) C++ will compare them Lexicographically. I´d like to take advantage of this searching through a array and return the smallest lexicographic value. And for than I am using a temporary value for finding the smallest one string smallest.
As you see I´ve given it the value z. What is the letter/symbol with the highest lexicographic value? is there any static variable That is already defined I can assign it to in C++?. What is the norm when doing this?
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;
}
You might want to use the std::min_element algorithm, which will use the normal less-than operator to retrieve an iterator to the smallest element in a range. This completely eliminates the need for you to write this function on your own.
Hope this helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With