Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Не могу понять почему так гиморойно присвоить одно значение переменной типа "текст" и прибавить к нему еще текст и еще текстовую переменную. Во всех языках это обычно. А на С++ меня аж бесит. s=ВводИнформацииТипаТекст(ТОЛЬКО НЕ КОНСОЛЬ!!! достали кусок текста из файла, веб страницы - неважно) s=s + " еще текст" + " еще текст результат от парсинга" + функцияСВозращениемТекста + число Это как по проще на С++ делается чтоб не материться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2017, 18:46 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Андрей159, sprintf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2017, 20:35 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
А если по модному, молодежному то std::stringstream (или более старый поток std::strstream << "XX" << std::ends;) https://habrahabr.ru/post/131977/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2017, 20:41 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
А почему во всех недоязыках можно просто склеить через + или другой символ, а в брутальном С++ нельзя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2017, 20:58 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Sergey_rbА почему во всех недоязыках можно просто склеить через + или другой символ, а в брутальном С++ нельзя? Потому что это тормоз. Брутальных тормозов не бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2017, 21:02 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbА почему во всех недоязыках можно просто склеить через + или другой символ, а в брутальном С++ нельзя? Потому что это тормоз. Брутальных тормозов не бывает. или это принципиально невозможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2017, 21:21 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено... Потому что это тормоз. Брутальных тормозов не бывает. или это принципиально невозможно? Как раз в С++ это принципиально возможно, потому что есть operator overloading, в отличие от многих других. Но,... не нужно. Уже заложен смысл Есть только сложение строк http://www.cplusplus.com/reference/string/string/operator / Хочешь - допиши сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2017, 21:28 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Лично мне в операции сложении не хватает возможностей форматирования, которые есть sprintf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2017, 21:29 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. мне неудобно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2017, 21:35 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Андрей159s=ВводИнформацииТипаТекст(ТОЛЬКО НЕ КОНСОЛЬ!!! достали кусок текста из файла, веб страницы - неважно) s=s + " еще текст" + " еще текст результат от парсинга" + функцияСВозращениемТекста + число Это как по проще на С++ делается чтоб не материться? А в чем проблема-то? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2017, 21:36 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено... Потому что это тормоз. Брутальных тормозов не бывает. или это принципиально невозможно? Ты пойми что A+B+C это сначала выделить память под A+B, затем выделить под (A+B) + С, т.е. это тормоз, поэтому sprintf, где сразу выделится память под итого. С++ под тормоза не заточен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2017, 21:37 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbпропущено... или это принципиально невозможно? Ты пойми что A+B+C это сначала выделить память под A+B, затем выделить под (A+B) + С, т.е. это тормоз, поэтому sprintf, где сразу выделится память под итого. С++ под тормоза не заточен. А разве string не так работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2017, 21:40 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено... Ты пойми что A+B+C это сначала выделить память под A+B, затем выделить под (A+B) + С, т.е. это тормоз, поэтому sprintf, где сразу выделится память под итого. С++ под тормоза не заточен. А разве string не так работает? нет. это две последовательные несвязанные операции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2017, 23:57 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Dima Tпоэтому sprintf, где сразу выделится память под итого Не выделится сразу. Это тоже будут двухступенчатые тормоза, помноженные на парсинг строки формата. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 00:09 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovDima Tпоэтому sprintf, где сразу выделится память под итого Не выделится сразу. Это тоже будут двухступенчатые тормоза, помноженные на парсинг строки формата. Ты выделишь память один раз перед вызовом sprintf'a. А при плюсовании - столько раз, сколько аргументов. Тормоза простого парсинга невелики, и уж гораздо быстрее сис.вызова выделения памяти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 00:38 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
+= или append сделать религия не позволяет? у брутальных кроме + есть ещё StringBuffer/StringBuilder ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 00:38 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Siemarglи уж гораздо быстрее сис.вызова выделения памяти это вряд ли системный вызов - просто выделение памяти из локальной кучи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 00:39 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
ИзопропилSiemarglи уж гораздо быстрее сис.вызова выделения памяти это вряд ли системный вызов - просто выделение памяти из локальной кучиПредлагаю посмотреть исходники RTL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 00:52 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
кому она теперь надо эта скорость и эта память... разве что если на Arduino свой сервер писать.. И так система все убивает и память и хард и скорость. В 2005 году я думал после 7рки Виндовс выйдет какой-то 3D виндовс. Вышло какое-то гавно, после него еще лучше и потом не знаю что это было такое, куда пропали тени от элементов. 10лет прошло. Память под систему увеличилась в двое, а если подумать виндовс это набор элементов и готового функционала для программистов. В итоге что за 10 лет изменилось в лучшую сторну. Разве что начали следить и замахивать обновлением особенно когда нужно срочно выключить и кудато идти. А борьба с вирусами только на словах. Автозапуск отключил и 8 лет без антивирусника и без проблем, а они что-то там борятся. Только фоновые приложения увеличились от 18 к 60. О расходе памяти можно точно не беспокоится. Спасибо за std::string s ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 01:29 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Андрей159кому она теперь надо эта скорость и эта память.. представь себе - нужна не только в танчики люди играют ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 01:32 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
P.S. а что говорить а Питоне, в котором чтоб написать цыкл от 1 к 100 нужно использовать массив от 1 к 100. Это ж как интересно на машинном коде все будет работать?))))) На этом уроке я и закончил свое обучение начал гуглить все о скорости Питона и сравнении. Сам потестил также. Ой и медляра... Логика не подвела. Но рейтинг языка зашкаливает. Так и не понял в чем прикол популярности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 01:35 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Андрей159, не путай массив с генератором ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 01:36 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovDima Tпоэтому sprintf, где сразу выделится память под итого Не выделится сразу. Это тоже будут двухступенчатые тормоза, помноженные на парсинг строки формата. А сколько это в минутах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 04:21 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
SiemarglЛично мне в операции сложении не хватает возможностей форматирования, которые есть sprintf Siemargl Код: plaintext 1. мне неудобно http://www.boost.org/doc/libs/1_64_0/libs/format/doc/format.html#examples ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 11:54 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
а байт из значением 0 чтоб сохранить в переменную нужно еще и экранировать? А каким вы пользуетесь самым быстрым, но может не самым удобным способом? (в приоритет быстродействия) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 14:49 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 15:14 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Sergey_rbнедоязыках У каждого свой любимый фломастер. По этому выбирайте слова правильно. Особенно если вы не очень разборчивый человек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 22:05 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Андрей159P.S. а что говорить а Питоне, в котором чтоб написать цыкл от 1 к 100 нужно использовать массив от 1 к 100. Это ж как интересно на машинном коде все будет работать?))))) На этом уроке я и закончил свое обучение начал гуглить все о скорости Питона и сравнении. Сам потестил также. Ой и медляра... Логика не подвела. Но рейтинг языка зашкаливает. Так и не понял в чем прикол популярности. Я не думаю что Питон будет обязательно создавать массив. Скорее всего эта метафора разворачивается в ленивый генератор последовательности. Как на "машинном коде будет все работать" - это еще более холиварный вопрос. Скорее всего никак т.к. машинного кода нет а есть "байт-код". (Здесь я возможно ошибаюсь т.к. давно не связывался с этой змейкой. Вобщем пускай знающие прокомментируют где и на какой фазе рантайма или компилляции мы получим машинный код. А пока я считаю в соотв. со сведениями из wiki что Python - интерпретатор байткода). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2017, 23:26 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Dima TТы пойми что A+B+C это сначала выделить память под A+B, затем выделить под (A+B) + СА если применить move-семантику, может можно ещё быстрее сделать - фрагментированную строку. В неё можно и вставку внутрь делать очень быстро любых размеров данных. Sergey_rbнедоязыкахс++ доязык ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2017, 05:23 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Sergey_rbА почему во всех недоязыках можно просто склеить через + или другой символ, а в брутальном С++ нельзя? можно, просто ты не умеешь.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2017, 06:29 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Андрей159. Но рейтинг языка зашкаливает. Так и не понял в чем прикол популярности. в том , что действительно быстрые программы нужны лишь в порядка 20 % случаев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2017, 06:33 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
MasterZivSergey_rbА почему во всех недоязыках можно просто склеить через + или другой символ, а в брутальном С++ нельзя? можно, просто ты не умеешь.... На предыдущей странице было написано, что нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2017, 10:11 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Sergey_rbА почему во всех недоязыках можно просто склеить через + или другой символтам, под строками, скорее всего скрыт механизм, который в общем случае можно назвать variant, который сам с собой можно складывать, при этом он может формально представлять разные типы. Ну ты может тоже использовать _variant_t тип. Sergey_rbНа предыдущей странице было написано, что нельзя.где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2017, 10:58 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Кстати на каждый вопрос о конкатенации строк я люблю задавать другой вопрос. А что будет дальше с результатом? Он будет отдан в stream? Вообще каков КПД "конкатенации" как алгоритма? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2017, 20:50 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
maytonВообще каков КПД "конкатенации" как алгоритма? логично же: O(A+B) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2017, 22:50 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Давайте сделаем O(1). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2017, 23:18 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2017, 23:33 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
А мой вариант с фрагментированной строкой не прокатил? Конкатенация O(1) Сброс в буфер O(N) Сброс в строку O(N) - хотя тут надо подумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 05:49 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Надо еще подумать про базовый набор операций типа substr, replace e.t.c. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 08:13 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
maytonНадо еще подумать про базовый набор операций типа substr, replace e.t.c. Да, начните таки думать о том, что давно уже сделано другими! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 09:09 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
maytonКстати на каждый вопрос о конкатенации строк я люблю задавать другой вопрос. А что будет дальше с результатом? Он будет отдан в stream? Вообще каков КПД "конкатенации" как алгоритма? Он будет отправлен на HTTP сервер в качестве запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 09:10 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Sergey_rbДа, начните таки думать о том, что давно уже сделано другими!мы как раз о том, что другими не сделано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 09:15 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
CEMbSergey_rbДа, начните таки думать о том, что давно уже сделано другими!мы как раз о том, что другими не сделано Если это другими еще не сделано, значит это никому не нужно, но вы продолжайте думать, продолжайте... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 09:44 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
maytonДавайте сделаем O(1). придётся как-то сделать без операции копирования, которая и даёт O(len(A)+len(B)) но даже c rope (верёвкой) будет логарифм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 09:45 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)придётся как-то сделать без операции копирования, которая и даёт O(len(A)+len(B)) но даже c rope (верёвкой) будет логарифмMS у CString сделало копированием просто адреса строки, O(1) Ну и они как-то там следят за изменением обеих "копий", да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 10:55 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
CEMbMS у CString сделало копированием просто адреса строки, O(1) Ну и они как-то там следят за изменением обеих "копий", да. мы вроде бы о сложении персистентных строк говорим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 13:35 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Давайте я очерчу парадигму. 1) Необходимо разработать строковый тип данных, обеспечивающий максимальную пропускную способность операций конкатенации (+) или concat. 2) Для удобства использования и для исключения конфликтов пускай он называется lstring (Lazy-String). 3) Реализация должна использовать принцип "ленивых вычислений". То есть в цепочке операций Код: plaintext 1. мы не делаем 100 конкатенаций а мы просто накапливаем список операций. До тех пор пока не будет вызван явный процесс получения строки результата из интерфейса lstring. 4) Операции вывода в stream определяются для "списка операций". 5) Прочие строковые операции такие как length(), substr(), replace() также адаптируются к "ленивой" парадигме. Например расчет length() не требует явного перерасчета s. Для метода substr() также применяется логика отбрасывания ненужных операций. 6) Прочий API (работа с регулярками) адаптируется к stream исходной строки таким-же образом. Сюда-же идут файловые операции и фасады для работы с консолью (printf, puts) 7) API отображения (map) наподобие .toUpper(), .to(Lower) также адаптируется к stream результату без явного преобразования в строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 23:16 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)maytonДавайте сделаем O(1). придётся как-то сделать без операции копирования, которая и даёт O(len(A)+len(B)) но даже c rope (верёвкой) будет логарифм Большое спасибо Руслан что вы напомнили мне о такой замечательной структуре данных как Rope(DataStructure). Лежит в списке на прочтение. Но думаю что в данной задаче мы пока начнем что-то решать без верёвки. Оставим на десерт когда все простые решения будут исчерпаны. Я верю что R/B-tree, hashmap, и LRU нас спасали последние лет 50 в информатике и вычислительной технике и сейчас спасут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 23:42 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
mayton, что это даст сообществу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 23:43 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Sergey_rbmaytonНадо еще подумать про базовый набор операций типа substr, replace e.t.c. Да, начните таки думать о том, что давно уже сделано другими! Милостивый государь! Я думаю что ваше восклицание требует определённых пояснений. Что имелось в виду? Какими "другими" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 23:46 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Изопропилmayton, что это даст сообществу? Пока не знаю. Я просто предложил свой "поток сознания". Жду реакции. В скобках замечу что в этом форуме я - альтруист и вообще не преследую никаких оценок из серии что будет полезно или безполезно для науки и народного хозяйства. На альтруизме также базируется мое модерирование и вообще присутствие здесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 23:49 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)CEMbMS у CString сделало копированием просто адреса строки, O(1) Ну и они как-то там следят за изменением обеих "копий", да. мы вроде бы о сложении персистентных строк говоримты выдёргиваешь меня из своего же контекста. Вопрос (твой) был про невозможность копирования O(1), я на него и ответил Изопропилчто это даст сообществу? есть задачи, где надо много работать со строками. А потом, это хорошая академическая задача, если её решить, мы получим неплохой скилл в оптимизации работы с большими данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 05:03 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
maytonSergey_rbпропущено... Да, начните таки думать о том, что давно уже сделано другими! Милостивый государь! Я думаю что ваше восклицание требует определённых пояснений. Что имелось в виду? Какими "другими" ? авторЯзык Паскаль был создан Никлаусом Виртом в 1968—1969 годах после его участия в работе комитета разработки стандарта языка Алгол-68. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал первую в мире механическую машину, складывающую два числа. https://ru.wikipedia.org/wiki/Паскаль_(язык_программирования) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 09:06 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Sergey_rbmaytonпропущено... Милостивый государь! Я думаю что ваше восклицание требует определённых пояснений. Что имелось в виду? Какими "другими" ? авторЯзык Паскаль был создан Никлаусом Виртом в 1968—1969 годах после его участия в работе комитета разработки стандарта языка Алгол-68. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал первую в мире механическую машину, складывающую два числа. https://ru.wikipedia.org/wiki/Паскаль_(язык_программирования) Я понял. В беседе со мной вы выбрали механизм цитат и ссылок. Вы решили что будете очень убедительны если будете ссылаться на общеизвестные факты наподобие "Волга впадает в Каспийское море"... e.t.c. А вы поняли ЗАЧЕМ я предлагаю создать еще одну имплементацию строки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 09:13 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyА в чем проблема-то? Код: plaintext 1. 2. Можно еще через конструктор копии: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 09:22 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
maytonkealon(Ruslan)пропущено... придётся как-то сделать без операции копирования, которая и даёт O(len(A)+len(B)) но даже c rope (верёвкой) будет логарифм Большое спасибо Руслан что вы напомнили мне о такой замечательной структуре данных как Rope(DataStructure). Лежит в списке на прочтение. Но думаю что в данной задаче мы пока начнем что-то решать без верёвки. Оставим на десерт когда все простые решения будут исчерпаны. Я верю что R/B-tree, hashmap, и LRU нас спасали последние лет 50 в информатике и вычислительной технике и сейчас спасут. верёвка - то же бинарное дерево, к нему так же можно применять балансировку из RB, AVL, DT и пр., просто сортировочного ключа нет CEMbkealon(Ruslan)пропущено... мы вроде бы о сложении персистентных строк говоримты выдёргиваешь меня из своего же контекста. Вопрос (твой) был про невозможность копирования O(1), я на него и ответил там вопрос был про создать строку из двух, а для этого в лобовом случае надо выделить место на результат и скопировать из двух источников ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 10:16 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
Выделить место на стеке - одна операция процессора. Скопировать строку - с учетом всяких AVX - по 64 байта за две операции. Сколько тактов это занимает - лень смотреть, но с учетом того, что процессоры Гигагерцовые - это, напоминаю миллиарды тактов в секунду. Больше задержек с обращением к разным участкам памяти, чем к собиранию в одну строку. P.S. Паскаль не позволяет приплюсовать число к строке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 10:43 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
SiemarglP.S. Паскаль не позволяет приплюсовать число к строке. ????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 10:50 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
вот только sptintf лучше не использовать, если это не лаба на зачётную неделю. _snprintf_s ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 11:35 |
|
||
|
конкатенация строки в одну переменную
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)там вопрос был про создать строку из двух, а для этого в лобовом случае надо выделить место на результат и скопировать из двух источниковда, но если взять строку, которая поддерживает фрагментацию, плюс механизм от MS, позволяющий разделять ресурсы (строку) между объектами(CString), то создать строку из двух и скопировать в третью получается O(1) Sergey_rb?????нас или троллят, или человек действительно не понимает, в чём суть и проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 12:26 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2018135]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 297ms |

| 0 / 0 |
