Я предполагаю, что вы сравниваете строки, используя их символьное значение. То есть один символ действует как цифра, более длинная строка больше короткой и т. д.
s, есть ли какая-нибудь реальная последовательность символов, которая всегда сравнивается больше, чем любая другая строка?
Нет, потому что:
- Давайте предположим, что есть строка s , которая всегда больше, чем любая другая строка.
- Если вы сделаете копию s , копия будет равна s . Равное означает «не больше». Поэтому может быть строка, которая не превышает s .
- Если вы сделаете копию s и добавите один символ в конце, это будет больше, чем оригинал s . Поэтому может быть строка, которая больше s .
- Это означает, что невозможно сделать с .
т.е.
Строка s , которая всегда больше, чем любая другая строка, не может существовать. Копия s (copy == другая строка) будет равна s , а «равно» означает «не больше».
Строка s , которая всегда больше или равна любой другой строке, может существовать, если максимальный размер строки имеет разумный предел. Без ограничения размера можно будет взять копию s , добавить один символ в конце и получить строку, которая больше s .
На мой взгляд, правильным решением было бы ввести какой-то особый строковый объект, представляющий бесконечно «большую» строку, и написать оператор сравнения для этого объекта и стандартной строки. Кроме того, в этом случае вам может понадобиться пользовательский класс строки.
Можно создать строку, которая всегда меньше или равна любой другой строке. Строка нулевой длины будет именно такой - всегда меньше, чем что-либо еще, и будет равна другим строкам нулевой длины.
Или вы можете написать контр-интуитивную процедуру сравнения, где более короткая строка больше, чем более длинная строка, но в этом случае следующий сопровождающий кода будет вас ненавидеть, так что это не очень хорошая идея.
Не уверен, зачем тебе когда-нибудь нужно что-то подобное.