LINUX.ORG.RU

Скорее всего, по буквам, т.к. std::string::compare имеет более сложную логику, чем просто «равно/не равно».

Gvidon ★★★★
()
Ответ на: комментарий от Dudraug

А какая разница?

Сравнить длины - О(1), а пробежаться по всей строке - О(n). Если ну очень важна скорость и волнует только равенство-неравенство, то имеет смысл сначала сравнить длины.

Gvidon ★★★★
()
Ответ на: комментарий от Gvidon

Если критично, то напиши сам. Я к тому это спросил, что рассчитывать на реализацию библиотеки (внутренюю) не стоит. Могут поменять, дока вроде это не оговаривает. Так что если для задачи критично такое поведение, то я бы написал свой сравнятор.

Dudraug ★★★★★
()
Ответ на: комментарий от pozitiffcat

Ну если она есть, то смотри стандарт. В книгах, да всяких манах я такого не видел. В стандарте такого тоже не помню. Но можешь сам посмотреть. Если там нет, то нигде нет=)

Dudraug ★★★★★
()
Ответ на: комментарий от pozitiffcat

да я std::map юзаю он там по operator== поидее сравнивает

по operator<

wota ★★
()
Ответ на: комментарий от pozitiffcat

да я std::map юзаю он там по operator== поидее сравнивает

Интересно, по чей это идее? По стандарту - std::less<T>.

Begemoth ★★★★★
()
Ответ на: комментарий от pozitiffcat

ОМГ. Не используй то, чего не знаешь. Там же деревья, какой ==? operator< там. Если тебе нужны не деревья, а хэши, то используй unordered_map.

anonymous
()
Ответ на: комментарий от wota

А ну вот и ответ. Ну чисто из научного интереса, можно пунктик стандрта. Я не спорю, просто правда любопытно.

Dudraug ★★★★★
()
Ответ на: комментарий от Dudraug

хотя нет, я лажанул, надо внимательней читать перед тем как отвечать - берется минимальная длина двух строк, эти подстроки сравниваются и если они равны, то уже по длине смотрится, 21.3.6.8

wota ★★
()
Ответ на: комментарий от Gvidon

Для того, чтобы узнать длину строки нужно пробежаться по всем символам до \0 Что в результате дает O(n)

anonymous
()
Ответ на: комментарий от anonymous

Для того, чтобы узнать длину строки нужно пробежаться по всем символам до \0

std::string хранит длину отдельно

wota ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.