C++ 3d.Комментарии


Особенности символов


Вызов assign(s,n,x) при помощи assign(s[i],x) присваивает n копий x строке s.

Функция compare() использует для сравнения символов lt() и eq().

К счастью, для обычных символов char_traits<char> это не так, в том смысле, что не происходит вызов в цикле lt(), eq(), assign(s[i],x), а используются специально для этого предназначенные memcmp() и memset(), что, впрочем, не влияет на конечный результат. Т.е. используя strcmp() мы ничего не выигрываем, даже более того, в специально проведенных мной измерениях производительности, сравнения string оказались на 30% быстрее, чем принятое в C сравнение char* с помощью strcmp(). Что и не удивительно: для string размеры сравниваемых массивов char известны заранее.




Начало  Назад  Вперед