LINUX.ORG.RU

История изменений

Исправление cvs-255, (текущая версия) :

тогда нужно вести подсчет длины где-то. это требует цпу. в отличие от тупых перескоков до «нуля».

Так длину то все равно считать надо для большинства операций со строкой.

А так вот хочешь ты, например, склеить 2 строки, тебе надо выделить память суммарной длины, и затем записать сперва одну строку, а потом другую. А для этого придется считать длину строк. И так при каждой операции со строками, а не один раз при образовании строки.

Или, например, хочешь ты вернуть подстроку из строки. С си-строками тебе придется выделить новую память, скопировать туда подстроку и завершающий 0. А с строкой в виде структуры тебе достаточно вернуть структуру с указателем на начало и длиной. И никаких аллокаций. Надо ли говорить, что аллокация - дело небыстрое?

Исправление cvs-255, :

тогда нужно вести подсчет длины где-то. это требует цпу. в отличие от тупых перескоков до «нуля».

Так длину то все равно считать надо для большинства операций со строкой.

А так вот хочешь ты, например, склеить 2 строки, тебе надо выделить память суммарной длины, и затем записать сперва одну строку, а потом другую. А для этого придется считать длину строк. И так при каждой операции со строками, а не один раз при образовании строки.

Исправление cvs-255, :

тогда нужно вести подсчет длины где-то. это требует цпу. в отличие от тупых перескоков до «нуля».

Так длину то все равно считать надо для большинства операций со строкой.

А так вот хочешь ты, например, склеить 2 строки, тебе надо выделить память суммарной длины, и затем записать сперва одну строку, а потом другую. А для этого придется считать длину строк. И так при каждой операции со строками, а не один раз в начале.

Исходная версия cvs-255, :

тогда нужно вести подсчет длины где-то. это требует цпу. в отличие от тупых перескоков до «нуля».

Так длину то все равно считать надо для большинства операций со строкой.