Здравствуйте, Klapaucius, Вы писали:
K>Здравствуйте, Serginio1, Вы писали:
S>> эээ WolfHound утверждает что веревки это 2-3 дерево.
K>Ну, не обязательно 2-3.
Для мутабельного типа строки вполне подойдут двухнапрвленные списки строк, или буферов определенного объема как б+ деревьях.
Вместо индекса использовать закладку содержащий узел и смещение.
Буфера нужны для разбития строк если она большая и подвергается модификации, а так же для аккумуляциималеньких строк.
Тогда дерева никакого ненадо, и пробег по строкам будет быстрым и модификация дешевой.
Для имутабельного обязательно нужно балансированное дерево, т.к. при модификации строки, мы должны скопировать ветку от корня до узла с модифицированной строкой. Балансированное что бы доступ к узлу от корня был Log(N), в том числе и для закладок, содержащий путь до строкию
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, criosray, Вы писали:
C>StringBuilder представляет строку в виде полноценного связного списка char`ов, позволяя тем самым модифицировать ее за линейное время (в отличии от std::string).
Здравствуйте, Геннадий Васильев, Вы писали: ГВ>Я понял, согласен, мешанина получилась. Надо бы попробовать переструктурировать. Одна причина слива .Net понятна — ToString. Интересно, сколько она весит...
В большинстве случаев, ToString будет выигрывть, т.к. не будет копирования строки.
Для чего он кстати и предназначен. Понятно, что можно подобрать условия когда и быструю сортировку можно загнать в угол.
Все же нужно подбирать рабочие тесты, а для индентичного использования как правильно заметили Substring.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, criosray, Вы писали:
E>>Так С++ это не фреймворк для разработки приложений.. Фреймворк это QT, например... C>Ну здраствуйте, капитан Очевидность... E>>А С++ это стредство разработки фреймворков... C>Ух ты, не может быть.
Ну так строишь свою критику плюсов, что возникает ощущение, что ты этих очевидных вещей не понимаешь
C>STL это что?
STL -- это часть средства для изготовления фрейсворков. Сам по себе STL фреймворком не является, так как без кучи великов на нём не поедешь...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, criosray, Вы писали:
C>Я не знаю immutable ли QString или нет — за что купил, за то и продаю. Если можете доказать обратное — милости просим, но пока Ваши доводы ничего не доказали, равно как ничего и не опровергли.
Ну ты это на сайт зайди и доки погляди и всё узнаешь... Если готов поверить на слово, то мутабельная...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, _d_m_, Вы писали:
C>>StringBuilder представляет строку в виде полноценного связного списка char`ов, позволяя тем самым модифицировать ее за линейное время (в отличии от std::string).
___>Гон. Там массив char'ов
Даже хуже. Там (если речь о .NET) внутри просто string (который на самом деле не совсем неизменяемый) А вот уже сам string — просто последовательность char-ов.
Здравствуйте, criosray, Вы писали:
E>>Если тебе хочется именно мощь фреймворков сравнивать, то имеет смысл сравнивать какие-то фреймворки, а не "голый С++", при этом стоит учесть, что С++ на самом деле предлагает широкий выбор фреймворков. C>STL это что?
книжки читать надо перед тем, как лезть в споры.. глупостей будет на порядок меньше..
Здравствуйте, neFormal, Вы писали:
F>Здравствуйте, criosray, Вы писали:
E>>>Если тебе хочется именно мощь фреймворков сравнивать, то имеет смысл сравнивать какие-то фреймворки, а не "голый С++", при этом стоит учесть, что С++ на самом деле предлагает широкий выбор фреймворков. C>>STL это что?
F> книжки читать надо перед тем, как лезть в споры.. глупостей будет на порядок меньше..
Не стоит выставлять на показ свои проблемы с логикой. Не берите пример с Шеридана.
Здравствуйте, Erop, Вы писали:
C>>STL это что? E>STL -- это часть средства для изготовления фрейсворков. Сам по себе STL фреймворком не является, так как без кучи великов на нём не поедешь...
STL это и есть фреймворк. Убогий — да. Но тем не менее фреймворк.
Давайте без домыслов и фантазий бабушки-гадалки, окей?
WF> ___>Гон. Там массив char'ов
WF> Даже хуже. Там (если речь о .NET) внутри просто string (который на самом деле не совсем неизменяемый) А вот уже сам string — просто последовательность char-ов.
Там массив char'ов, как их понимают в С/C++, или все же массив символов?
Здравствуйте, criosray, Вы писали:
C>>>STL это что? F>> книжки читать надо перед тем, как лезть в споры.. глупостей будет на порядок меньше.. C>Не стоит выставлять на показ свои проблемы с логикой. Не берите пример с Шеридана.
ну, прочитай что ли значение слов "фреймворк" и "библиотека".. вики в помощь: Фреймворк Библиотека
и не пишите больше таких глупостей.. а то сишники полопаются от смеха..
Здравствуйте, Mamut, Вы писали:
WF>> Даже хуже. Там (если речь о .NET) внутри просто string (который на самом деле не совсем неизменяемый) А вот уже сам string — просто последовательность char-ов.
M>Там массив char'ов, как их понимают в С/C++, или все же массив символов?
Последовательность (не совсем массив) char'ов, как их понимают в .NET То есть символов (в некотором приближении).
Здравствуйте, criosray, Вы писали:
ГВ>>Дотнетовский, например, String.insert возвращает string. А QT-шный QString::insert возвращает QString&. Разница понятна? C>Разница понятна — и то и другое есть ссылка.
C>Я не знаю immutable ли QString или нет — за что купил, за то и продаю. Если можете доказать обратное — милости просим, но пока Ваши доводы ничего не доказали, равно как ничего и не опровергли.
Сразу видно, что давно ты на C++ писал. Метод класса широко распространённой C++-библиотеки, возвращающий ссылку на экземпляр этого же класса очень-очень вряд ли вернёт ссылку на что-то отличное от себя самого.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, neFormal, Вы писали:
C>>>>STL это что? F>>> книжки читать надо перед тем, как лезть в споры.. глупостей будет на порядок меньше.. C>>Не стоит выставлять на показ свои проблемы с логикой. Не берите пример с Шеридана.
F>ну, прочитай что ли значение слов "фреймворк" и "библиотека".. вики в помощь: F>Фреймворк F>Библиотека
И? STL подходит 100% под определение фреймворка из приведенных Вами ссылок. "Акелла промахнулся". F>и не пишите больше таких глупостей.. а то сишники полопаются от смеха..
Смейтесь на здоровье. Хорошо смеется тот, кто смеется последним, и это явно будете не Вы.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>>Дотнетовский, например, String.insert возвращает string. А QT-шный QString::insert возвращает QString&. Разница понятна? C>>Разница понятна — и то и другое есть ссылка.
C>>Я не знаю immutable ли QString или нет — за что купил, за то и продаю. Если можете доказать обратное — милости просим, но пока Ваши доводы ничего не доказали, равно как ничего и не опровергли.
ГВ>Сразу видно, что давно ты на C++ писал. Метод класса широко распространённой C++-библиотеки, возвращающий ссылку на экземпляр этого же класса очень-очень вряд ли вернёт ссылку на что-то отличное от себя самого.
И?
Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, Геннадий Васильев, Вы писали: ГВ>>Я понял, согласен, мешанина получилась. Надо бы попробовать переструктурировать. Одна причина слива .Net понятна — ToString. Интересно, сколько она весит... S> В большинстве случаев, ToString будет выигрывть, т.к. не будет копирования строки.
Как это, не будет копирования строки?
S>Для чего он кстати и предназначен. Понятно, что можно подобрать условия когда и быструю сортировку можно загнать в угол. S>Все же нужно подбирать рабочие тесты, а для индентичного использования как правильно заметили Substring.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
S>> В большинстве случаев, ToString будет выигрывть, т.к. не будет копирования строки.
ГВ>Как это, не будет копирования строки?
В типичных случаях он отдаёт наружу ровно ту строку, которую внутри себя редактирует. Естественно, с необходимой осторожностью, для гарантии неизменяемости этой отданной строки.
Здравствуйте, criosray, Вы писали:
ГВ>>Сразу видно, что давно ты на C++ писал. Метод класса широко распространённой C++-библиотеки, возвращающий ссылку на экземпляр этого же класса очень-очень вряд ли вернёт ссылку на что-то отличное от себя самого. C>И?
Значит QString никакой не immutable.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, WFrag, Вы писали:
ГВ>>Как это, не будет копирования строки?
WF>В типичных случаях он отдаёт наружу ровно ту строку, которую внутри себя редактирует. Естественно, с необходимой осторожностью, для гарантии неизменяемости этой отданной строки.
То есть он отдаёт строку, держит на неё ссылку и при последующем, например, Append — дублирует её обратно во внутренний буфер?
String s = strBuilder.ToString(); // Отдал строку
strBuilder.Append("ABC"); // Вернул себе копию того, что было отдано через ToString и продолжил модификацию
Так?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!