Re[65]: Ну ты вообще многого не видишь... ;)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 09.06.09 07:02
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Здравствуйте, Serginio1, Вы писали:


S>> эээ WolfHound утверждает что веревки это 2-3 дерево.


K>Ну, не обязательно 2-3.


Для мутабельного типа строки вполне подойдут двухнапрвленные списки строк, или буферов определенного объема как б+ деревьях.
Вместо индекса использовать закладку содержащий узел и смещение.
Буфера нужны для разбития строк если она большая и подвергается модификации, а так же для аккумуляциималеньких строк.
Тогда дерева никакого ненадо, и пробег по строкам будет быстрым и модификация дешевой.
Для имутабельного обязательно нужно балансированное дерево, т.к. при модификации строки, мы должны скопировать ветку от корня до узла с модифицированной строкой. Балансированное что бы доступ к узлу от корня был Log(N), в том числе и для закладок, содержащий путь до строкию
и солнце б утром не вставало, когда бы не было меня
Re[19]: Ну ты вообще многого не видишь... ;)
От: _d_m_  
Дата: 09.06.09 07:04
Оценка:
Здравствуйте, criosray, Вы писали:

C>StringBuilder представляет строку в виде полноценного связного списка char`ов, позволяя тем самым модифицировать ее за линейное время (в отличии от std::string).


Гон. Там массив char'ов
Re[57]: Ну ты вообще многого не видишь... ;)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 09.06.09 07:11
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Я понял, согласен, мешанина получилась. Надо бы попробовать переструктурировать. Одна причина слива .Net понятна — ToString. Интересно, сколько она весит...
В большинстве случаев, ToString будет выигрывть, т.к. не будет копирования строки.
Для чего он кстати и предназначен. Понятно, что можно подобрать условия когда и быструю сортировку можно загнать в угол.
Все же нужно подбирать рабочие тесты, а для индентичного использования как правильно заметили Substring.
и солнце б утром не вставало, когда бы не было меня
Re[60]: Ну ты вообще многого не видишь... ;)
От: Erop Россия  
Дата: 09.06.09 07:36
Оценка:
Здравствуйте, criosray, Вы писали:

E>>Так С++ это не фреймворк для разработки приложений.. Фреймворк это QT, например...

C>Ну здраствуйте, капитан Очевидность...
E>>А С++ это стредство разработки фреймворков...
C>Ух ты, не может быть.
Ну так строишь свою критику плюсов, что возникает ощущение, что ты этих очевидных вещей не понимаешь

C>STL это что?

STL -- это часть средства для изготовления фрейсворков. Сам по себе STL фреймворком не является, так как без кучи великов на нём не поедешь...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[68]: Ну ты вообще многого не видишь... ;)
От: Erop Россия  
Дата: 09.06.09 07:39
Оценка:
Здравствуйте, criosray, Вы писали:

C>Я не знаю immutable ли QString или нет — за что купил, за то и продаю. Если можете доказать обратное — милости просим, но пока Ваши доводы ничего не доказали, равно как ничего и не опровергли.


Ну ты это на сайт зайди и доки погляди и всё узнаешь... Если готов поверить на слово, то мутабельная...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[20]: Ну ты вообще многого не видишь... ;)
От: WFrag США  
Дата: 09.06.09 07:44
Оценка:
Здравствуйте, _d_m_, Вы писали:

C>>StringBuilder представляет строку в виде полноценного связного списка char`ов, позволяя тем самым модифицировать ее за линейное время (в отличии от std::string).


___>Гон. Там массив char'ов


Даже хуже. Там (если речь о .NET) внутри просто string (который на самом деле не совсем неизменяемый) А вот уже сам string — просто последовательность char-ов.
Re[60]: Ну ты вообще многого не видишь... ;)
От: neFormal Россия  
Дата: 09.06.09 07:47
Оценка: -1
Здравствуйте, criosray, Вы писали:

E>>Если тебе хочется именно мощь фреймворков сравнивать, то имеет смысл сравнивать какие-то фреймворки, а не "голый С++", при этом стоит учесть, что С++ на самом деле предлагает широкий выбор фреймворков.

C>STL это что?

книжки читать надо перед тем, как лезть в споры.. глупостей будет на порядок меньше..
...coding for chaos...
Re[61]: Ну ты вообще многого не видишь... ;)
От: criosray  
Дата: 09.06.09 08:36
Оценка: :)
Здравствуйте, neFormal, Вы писали:

F>Здравствуйте, criosray, Вы писали:


E>>>Если тебе хочется именно мощь фреймворков сравнивать, то имеет смысл сравнивать какие-то фреймворки, а не "голый С++", при этом стоит учесть, что С++ на самом деле предлагает широкий выбор фреймворков.

C>>STL это что?

F> книжки читать надо перед тем, как лезть в споры.. глупостей будет на порядок меньше..


Не стоит выставлять на показ свои проблемы с логикой. Не берите пример с Шеридана.
Re[61]: Ну ты вообще многого не видишь... ;)
От: criosray  
Дата: 09.06.09 08:40
Оценка: -1 :)
Здравствуйте, Erop, Вы писали:

C>>STL это что?

E>STL -- это часть средства для изготовления фрейсворков. Сам по себе STL фреймворком не является, так как без кучи великов на нём не поедешь...

STL это и есть фреймворк. Убогий — да. Но тем не менее фреймворк.
Давайте без домыслов и фантазий бабушки-гадалки, окей?
Re[21]: Ну ты вообще многого не видишь... ;)
От: Mamut Швеция http://dmitriid.com
Дата: 09.06.09 08:48
Оценка:
WF> ___>Гон. Там массив char'ов

WF> Даже хуже. Там (если речь о .NET) внутри просто string (который на самом деле не совсем неизменяемый) А вот уже сам string — просто последовательность char-ов.


Там массив char'ов, как их понимают в С/C++, или все же массив символов?
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[62]: Ну ты вообще многого не видишь... ;)
От: neFormal Россия  
Дата: 09.06.09 08:52
Оценка:
Здравствуйте, criosray, Вы писали:

C>>>STL это что?

F>> книжки читать надо перед тем, как лезть в споры.. глупостей будет на порядок меньше..
C>Не стоит выставлять на показ свои проблемы с логикой. Не берите пример с Шеридана.

ну, прочитай что ли значение слов "фреймворк" и "библиотека".. вики в помощь:
Фреймворк
Библиотека
и не пишите больше таких глупостей.. а то сишники полопаются от смеха..
...coding for chaos...
Re[22]: Ну ты вообще многого не видишь... ;)
От: WFrag США  
Дата: 09.06.09 09:01
Оценка:
Здравствуйте, Mamut, Вы писали:

WF>> Даже хуже. Там (если речь о .NET) внутри просто string (который на самом деле не совсем неизменяемый) А вот уже сам string — просто последовательность char-ов.


M>Там массив char'ов, как их понимают в С/C++, или все же массив символов?


Последовательность (не совсем массив) char'ов, как их понимают в .NET То есть символов (в некотором приближении).
Re[22]: Ну ты вообще многого не видишь... ;)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 09.06.09 09:03
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Там массив char'ов, как их понимают в С/C++, или все же массив символов?



[Serializable, ComVisible(true)]
public sealed class StringBuilder : ISerializable
{
    // Fields
      internal volatile string m_StringValue;

Причем у строки куча унсейвных методов.
и солнце б утром не вставало, когда бы не было меня
Re[68]: Ну ты вообще многого не видишь... ;)
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 09.06.09 09:31
Оценка:
Здравствуйте, criosray, Вы писали:

ГВ>>Дотнетовский, например, String.insert возвращает string. А QT-шный QString::insert возвращает QString&. Разница понятна?

C>Разница понятна — и то и другое есть ссылка.

C>Я не знаю immutable ли QString или нет — за что купил, за то и продаю. Если можете доказать обратное — милости просим, но пока Ваши доводы ничего не доказали, равно как ничего и не опровергли.


Сразу видно, что давно ты на C++ писал. Метод класса широко распространённой C++-библиотеки, возвращающий ссылку на экземпляр этого же класса очень-очень вряд ли вернёт ссылку на что-то отличное от себя самого.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[63]: Ну ты вообще многого не видишь... ;)
От: criosray  
Дата: 09.06.09 09:32
Оценка: :)
Здравствуйте, neFormal, Вы писали:

C>>>>STL это что?

F>>> книжки читать надо перед тем, как лезть в споры.. глупостей будет на порядок меньше..
C>>Не стоит выставлять на показ свои проблемы с логикой. Не берите пример с Шеридана.

F>ну, прочитай что ли значение слов "фреймворк" и "библиотека".. вики в помощь:

F>Фреймворк
F>Библиотека
И? STL подходит 100% под определение фреймворка из приведенных Вами ссылок. "Акелла промахнулся".
F>и не пишите больше таких глупостей.. а то сишники полопаются от смеха..
Смейтесь на здоровье. Хорошо смеется тот, кто смеется последним, и это явно будете не Вы.
Re[69]: Ну ты вообще многого не видишь... ;)
От: criosray  
Дата: 09.06.09 09:34
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>>>Дотнетовский, например, String.insert возвращает string. А QT-шный QString::insert возвращает QString&. Разница понятна?

C>>Разница понятна — и то и другое есть ссылка.

C>>Я не знаю immutable ли QString или нет — за что купил, за то и продаю. Если можете доказать обратное — милости просим, но пока Ваши доводы ничего не доказали, равно как ничего и не опровергли.


ГВ>Сразу видно, что давно ты на C++ писал. Метод класса широко распространённой C++-библиотеки, возвращающий ссылку на экземпляр этого же класса очень-очень вряд ли вернёт ссылку на что-то отличное от себя самого.

И?
Re[58]: Ну ты вообще многого не видишь... ;)
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 09.06.09 09:36
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>>Я понял, согласен, мешанина получилась. Надо бы попробовать переструктурировать. Одна причина слива .Net понятна — ToString. Интересно, сколько она весит...
S> В большинстве случаев, ToString будет выигрывть, т.к. не будет копирования строки.

Как это, не будет копирования строки?

S>Для чего он кстати и предназначен. Понятно, что можно подобрать условия когда и быструю сортировку можно загнать в угол.

S>Все же нужно подбирать рабочие тесты, а для индентичного использования как правильно заметили Substring.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[59]: Ну ты вообще многого не видишь... ;)
От: WFrag США  
Дата: 09.06.09 09:43
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

S>> В большинстве случаев, ToString будет выигрывть, т.к. не будет копирования строки.


ГВ>Как это, не будет копирования строки?


В типичных случаях он отдаёт наружу ровно ту строку, которую внутри себя редактирует. Естественно, с необходимой осторожностью, для гарантии неизменяемости этой отданной строки.
Re[70]: Ну ты вообще многого не видишь... ;)
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 09.06.09 09:46
Оценка:
Здравствуйте, criosray, Вы писали:

ГВ>>Сразу видно, что давно ты на C++ писал. Метод класса широко распространённой C++-библиотеки, возвращающий ссылку на экземпляр этого же класса очень-очень вряд ли вернёт ссылку на что-то отличное от себя самого.

C>И?

Значит QString никакой не immutable.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[60]: Ну ты вообще многого не видишь... ;)
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 09.06.09 09:50
Оценка:
Здравствуйте, WFrag, Вы писали:

ГВ>>Как это, не будет копирования строки?


WF>В типичных случаях он отдаёт наружу ровно ту строку, которую внутри себя редактирует. Естественно, с необходимой осторожностью, для гарантии неизменяемости этой отданной строки.


То есть он отдаёт строку, держит на неё ссылку и при последующем, например, Append — дублирует её обратно во внутренний буфер?

String s = strBuilder.ToString(); // Отдал строку
strBuilder.Append("ABC"); // Вернул себе копию того, что было отдано через ToString и продолжил модификацию


Так?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.