powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / конкатенация строки в одну переменную
60 сообщений из 60, показаны все 3 страниц
конкатенация строки в одну переменную
    #39480945
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу понять почему так гиморойно присвоить одно значение переменной типа "текст" и прибавить к нему еще текст и еще текстовую переменную. Во всех языках это обычно. А на С++ меня аж бесит.

s=ВводИнформацииТипаТекст(ТОЛЬКО НЕ КОНСОЛЬ!!! достали кусок текста из файла, веб страницы - неважно)

s=s + " еще текст" + " еще текст результат от парсинга" + функцияСВозращениемТекста + число

Это как по проще на С++ делается чтоб не материться?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480958
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159,

sprintf
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480960
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если по модному, молодежному то std::stringstream (или более старый поток std::strstream << "XX" << std::ends;)
https://habrahabr.ru/post/131977/
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480964
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему во всех недоязыках можно просто склеить через + или другой символ, а в брутальном С++ нельзя?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480965
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbА почему во всех недоязыках можно просто склеить через + или другой символ, а в брутальном С++ нельзя?
Потому что это тормоз. Брутальных тормозов не бывает.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480970
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey_rbА почему во всех недоязыках можно просто склеить через + или другой символ, а в брутальном С++ нельзя?
Потому что это тормоз. Брутальных тормозов не бывает.

или это принципиально невозможно?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480972
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbDima Tпропущено...

Потому что это тормоз. Брутальных тормозов не бывает.

или это принципиально невозможно?
Как раз в С++ это принципиально возможно, потому что есть operator overloading, в отличие от многих других.

Но,... не нужно. Уже заложен смысл

Есть только сложение строк
http://www.cplusplus.com/reference/string/string/operator /

Хочешь - допиши сам.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480973
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лично мне в операции сложении не хватает возможностей форматирования, которые есть sprintf
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480975
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
stream << settbase(16) << setprecision(3) << xx;

мне неудобно
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480976
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159s=ВводИнформацииТипаТекст(ТОЛЬКО НЕ КОНСОЛЬ!!! достали кусок текста из файла, веб страницы - неважно)

s=s + " еще текст" + " еще текст результат от парсинга" + функцияСВозращениемТекста + число

Это как по проще на С++ делается чтоб не материться?

А в чем проблема-то?
Код: plaintext
1.
2.
std::string s = "текст";
s=s + " еще текст" + " еще текст результат от парсинга" + std::to_string(123);
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480977
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbDima Tпропущено...

Потому что это тормоз. Брутальных тормозов не бывает.

или это принципиально невозможно?
Ты пойми что A+B+C это сначала выделить память под A+B, затем выделить под (A+B) + С, т.е. это тормоз, поэтому sprintf, где сразу выделится память под итого. С++ под тормоза не заточен.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480978
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey_rbпропущено...


или это принципиально невозможно?
Ты пойми что A+B+C это сначала выделить память под A+B, затем выделить под (A+B) + С, т.е. это тормоз, поэтому sprintf, где сразу выделится память под итого. С++ под тормоза не заточен.

А разве string не так работает?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480998
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbDima Tпропущено...

Ты пойми что A+B+C это сначала выделить память под A+B, затем выделить под (A+B) + С, т.е. это тормоз, поэтому sprintf, где сразу выделится память под итого. С++ под тормоза не заточен.

А разве string не так работает?
нет. это две последовательные несвязанные операции.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481000
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tпоэтому sprintf, где сразу выделится память под итого

Не выделится сразу. Это тоже будут двухступенчатые тормоза, помноженные на парсинг строки
формата.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481008
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovDima Tпоэтому sprintf, где сразу выделится память под итого

Не выделится сразу. Это тоже будут двухступенчатые тормоза, помноженные на парсинг строки
формата.

Ты выделишь память один раз перед вызовом sprintf'a. А при плюсовании - столько раз, сколько аргументов.

Тормоза простого парсинга невелики, и уж гораздо быстрее сис.вызова выделения памяти
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481009
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+= или append сделать религия не позволяет?

у брутальных кроме + есть ещё StringBuffer/StringBuilder
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481010
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglи уж гораздо быстрее сис.вызова выделения памяти
это вряд ли системный вызов - просто выделение памяти из локальной кучи
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481013
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилSiemarglи уж гораздо быстрее сис.вызова выделения памяти
это вряд ли системный вызов - просто выделение памяти из локальной кучиПредлагаю посмотреть исходники RTL
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481019
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кому она теперь надо эта скорость и эта память... разве что если на Arduino свой сервер писать.. И так система все убивает и память и хард и скорость. В 2005 году я думал после 7рки Виндовс выйдет какой-то 3D виндовс. Вышло какое-то гавно, после него еще лучше и потом не знаю что это было такое, куда пропали тени от элементов. 10лет прошло. Память под систему увеличилась в двое, а если подумать виндовс это набор элементов и готового функционала для программистов. В итоге что за 10 лет изменилось в лучшую сторну. Разве что начали следить и замахивать обновлением особенно когда нужно срочно выключить и кудато идти. А борьба с вирусами только на словах. Автозапуск отключил и 8 лет без антивирусника и без проблем, а они что-то там борятся. Только фоновые приложения увеличились от 18 к 60. О расходе памяти можно точно не беспокоится.
Спасибо за std::string s
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481022
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159кому она теперь надо эта скорость и эта память..
представь себе - нужна

не только в танчики люди играют
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481023
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. а что говорить а Питоне, в котором чтоб написать цыкл от 1 к 100 нужно использовать массив от 1 к 100. Это ж как интересно на машинном коде все будет работать?))))) На этом уроке я и закончил свое обучение начал гуглить все о скорости Питона и сравнении. Сам потестил также. Ой и медляра... Логика не подвела. Но рейтинг языка зашкаливает. Так и не понял в чем прикол популярности.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481026
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159,

не путай массив с генератором
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481043
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovDima Tпоэтому sprintf, где сразу выделится память под итого

Не выделится сразу. Это тоже будут двухступенчатые тормоза, помноженные на парсинг строки
формата.


А сколько это в минутах?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481118
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglЛично мне в операции сложении не хватает возможностей форматирования, которые есть sprintf
Siemargl
Код: plaintext
1.
stream << settbase(16) << setprecision(3) << xx;


мне неудобно

http://www.boost.org/doc/libs/1_64_0/libs/format/doc/format.html#examples
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481177
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а байт из значением 0 чтоб сохранить в переменную нужно еще и экранировать?

А каким вы пользуетесь самым быстрым, но может не самым удобным способом? (в приоритет быстродействия)
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481187
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481359
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbнедоязыках

У каждого свой любимый фломастер. По этому выбирайте слова правильно. Особенно если вы не очень разборчивый человек.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481374
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159P.S. а что говорить а Питоне, в котором чтоб написать цыкл от 1 к 100 нужно использовать массив от 1 к 100. Это ж как интересно на машинном коде все будет работать?))))) На этом уроке я и закончил свое обучение начал гуглить все о скорости Питона и сравнении. Сам потестил также. Ой и медляра... Логика не подвела. Но рейтинг языка зашкаливает. Так и не понял в чем прикол популярности.
Я не думаю что Питон будет обязательно создавать массив. Скорее всего эта метафора
разворачивается в ленивый генератор последовательности.

Как на "машинном коде будет все работать" - это еще более холиварный вопрос. Скорее всего никак
т.к. машинного кода нет а есть "байт-код". (Здесь я возможно ошибаюсь т.к. давно не связывался
с этой змейкой. Вобщем пускай знающие прокомментируют где и на какой фазе рантайма или компилляции
мы получим машинный код. А пока я считаю в соотв. со сведениями из wiki что Python - интерпретатор
байткода).
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481412
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TТы пойми что A+B+C это сначала выделить память под A+B, затем выделить под (A+B) + СА если применить move-семантику, может можно ещё быстрее сделать - фрагментированную строку. В неё можно и вставку внутрь делать очень быстро любых размеров данных.
Sergey_rbнедоязыкахс++ доязык
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481414
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbА почему во всех недоязыках можно просто склеить через + или другой символ, а в брутальном С++ нельзя?


можно, просто ты не умеешь....
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481415
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159. Но рейтинг языка зашкаливает. Так и не понял в чем прикол популярности.

в том , что действительно быстрые программы нужны лишь в порядка 20 % случаев.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481498
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivSergey_rbА почему во всех недоязыках можно просто склеить через + или другой символ, а в брутальном С++ нельзя?


можно, просто ты не умеешь....

На предыдущей странице было написано, что нельзя.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481532
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbА почему во всех недоязыках можно просто склеить через + или другой символтам, под строками, скорее всего скрыт механизм, который в общем случае можно назвать variant, который сам с собой можно складывать, при этом он может формально представлять разные типы. Ну ты может тоже использовать _variant_t тип.
Sergey_rbНа предыдущей странице было написано, что нельзя.где?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482106
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати на каждый вопрос о конкатенации строк я люблю задавать другой вопрос.

А что будет дальше с результатом? Он будет отдан в stream?

Вообще каков КПД "конкатенации" как алгоритма?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482144
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВообще каков КПД "конкатенации" как алгоритма?
логично же: O(A+B)
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482153
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте сделаем O(1).
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482157
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДавайте сделаем O(1).
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482173
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мой вариант с фрагментированной строкой не прокатил?
Конкатенация O(1)
Сброс в буфер O(N)
Сброс в строку O(N) - хотя тут надо подумать.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482188
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо еще подумать про базовый набор операций типа substr, replace e.t.c.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482205
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНадо еще подумать про базовый набор операций типа substr, replace e.t.c.

Да, начните таки думать о том, что давно уже сделано другими!
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482207
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКстати на каждый вопрос о конкатенации строк я люблю задавать другой вопрос.

А что будет дальше с результатом? Он будет отдан в stream?

Вообще каков КПД "конкатенации" как алгоритма?

Он будет отправлен на HTTP сервер в качестве запроса.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482209
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbДа, начните таки думать о том, что давно уже сделано другими!мы как раз о том, что другими не сделано
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482223
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbSergey_rbДа, начните таки думать о том, что давно уже сделано другими!мы как раз о том, что другими не сделано

Если это другими еще не сделано, значит это никому не нужно, но вы продолжайте думать, продолжайте...
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482224
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДавайте сделаем O(1).
придётся как-то сделать без операции копирования, которая и даёт O(len(A)+len(B))
но даже c rope (верёвкой) будет логарифм
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482260
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)придётся как-то сделать без операции копирования, которая и даёт O(len(A)+len(B))
но даже c rope (верёвкой) будет логарифмMS у CString сделало копированием просто адреса строки, O(1) Ну и они как-то там следят за изменением обеих "копий", да.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482379
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbMS у CString сделало копированием просто адреса строки, O(1) Ну и они как-то там следят за изменением обеих "копий", да. мы вроде бы о сложении персистентных строк говорим
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482814
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте я очерчу парадигму.

1) Необходимо разработать строковый тип данных, обеспечивающий максимальную пропускную способность
операций конкатенации (+) или concat.

2) Для удобства использования и для исключения конфликтов пускай он называется lstring (Lazy-String).

3) Реализация должна использовать принцип "ленивых вычислений". То есть в цепочке операций

Код: plaintext
1.
lstring s = s1 + s2 + ..... s100;



мы не делаем 100 конкатенаций а мы просто накапливаем список операций. До тех пор пока не будет
вызван явный процесс получения строки результата из интерфейса lstring.

4) Операции вывода в stream определяются для "списка операций".

5) Прочие строковые операции такие как length(), substr(), replace() также адаптируются
к "ленивой" парадигме. Например расчет length() не требует явного перерасчета s.

Для метода substr() также применяется логика отбрасывания ненужных операций.

6) Прочий API (работа с регулярками) адаптируется к stream исходной строки таким-же образом.
Сюда-же идут файловые операции и фасады для работы с консолью (printf, puts)

7) API отображения (map) наподобие .toUpper(), .to(Lower) также адаптируется к stream
результату без явного преобразования в строку.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482831
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)maytonДавайте сделаем O(1).
придётся как-то сделать без операции копирования, которая и даёт O(len(A)+len(B))
но даже c rope (верёвкой) будет логарифм
Большое спасибо Руслан что вы напомнили мне о такой замечательной структуре данных как Rope(DataStructure).
Лежит в списке на прочтение. Но думаю что в данной задаче мы пока начнем что-то решать без верёвки.
Оставим на десерт когда все простые решения будут исчерпаны. Я верю что R/B-tree, hashmap, и LRU нас
спасали последние лет 50 в информатике и вычислительной технике и сейчас спасут.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482833
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

что это даст сообществу?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482836
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbmaytonНадо еще подумать про базовый набор операций типа substr, replace e.t.c.

Да, начните таки думать о том, что давно уже сделано другими!
Милостивый государь! Я думаю что ваше восклицание требует определённых пояснений.
Что имелось в виду?
Какими "другими" ?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482838
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилmayton,

что это даст сообществу?
Пока не знаю. Я просто предложил свой "поток сознания". Жду реакции. В скобках замечу
что в этом форуме я - альтруист и вообще не преследую никаких оценок из серии что будет
полезно или безполезно для науки и народного хозяйства.

На альтруизме также базируется мое модерирование и вообще присутствие здесь.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482875
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)CEMbMS у CString сделало копированием просто адреса строки, O(1) Ну и они как-то там следят за изменением обеих "копий", да. мы вроде бы о сложении персистентных строк говоримты выдёргиваешь меня из своего же контекста. Вопрос (твой) был про невозможность копирования O(1), я на него и ответил

Изопропилчто это даст сообществу?
есть задачи, где надо много работать со строками. А потом, это хорошая академическая задача, если её решить, мы получим неплохой скилл в оптимизации работы с большими данными.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482922
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonSergey_rbпропущено...


Да, начните таки думать о том, что давно уже сделано другими!
Милостивый государь! Я думаю что ваше восклицание требует определённых пояснений.
Что имелось в виду?
Какими "другими" ?

авторЯзык Паскаль был создан Никлаусом Виртом в 1968—1969 годах после его участия в работе комитета разработки стандарта языка Алгол-68. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал первую в мире механическую машину, складывающую два числа.

https://ru.wikipedia.org/wiki/Паскаль_(язык_программирования)
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482929
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbmaytonпропущено...

Милостивый государь! Я думаю что ваше восклицание требует определённых пояснений.
Что имелось в виду?
Какими "другими" ?

авторЯзык Паскаль был создан Никлаусом Виртом в 1968—1969 годах после его участия в работе комитета разработки стандарта языка Алгол-68. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал первую в мире механическую машину, складывающую два числа.

https://ru.wikipedia.org/wiki/Паскаль_(язык_программирования)
Я понял. В беседе со мной вы выбрали механизм цитат и ссылок. Вы решили что будете очень убедительны
если будете ссылаться на общеизвестные факты наподобие "Волга впадает в Каспийское море"... e.t.c.

А вы поняли ЗАЧЕМ я предлагаю создать еще одну имплементацию строки?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482935
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyА в чем проблема-то?
Код: plaintext
1.
2.
std::string s = "текст";
s=s + " еще текст" + " еще текст результат от парсинга" + std::to_string(123);

Можно еще через конструктор копии:
Код: plaintext
1.
std::string s = std::string("текст") + " еще текст" + " еще текст результат от парсинга" + std::to_string(123);
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482967
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonkealon(Ruslan)пропущено...

придётся как-то сделать без операции копирования, которая и даёт O(len(A)+len(B))
но даже c rope (верёвкой) будет логарифм
Большое спасибо Руслан что вы напомнили мне о такой замечательной структуре данных как Rope(DataStructure).
Лежит в списке на прочтение. Но думаю что в данной задаче мы пока начнем что-то решать без верёвки.
Оставим на десерт когда все простые решения будут исчерпаны. Я верю что R/B-tree, hashmap, и LRU нас
спасали последние лет 50 в информатике и вычислительной технике и сейчас спасут.
верёвка - то же бинарное дерево, к нему так же можно применять балансировку из RB, AVL, DT и пр., просто сортировочного ключа нет

CEMbkealon(Ruslan)пропущено...
мы вроде бы о сложении персистентных строк говоримты выдёргиваешь меня из своего же контекста. Вопрос (твой) был про невозможность копирования O(1), я на него и ответил
там вопрос был про создать строку из двух, а для этого в лобовом случае надо выделить место на результат и скопировать из двух источников
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39482994
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выделить место на стеке - одна операция процессора.
Скопировать строку - с учетом всяких AVX - по 64 байта за две операции.

Сколько тактов это занимает - лень смотреть, но с учетом того, что процессоры Гигагерцовые - это, напоминаю миллиарды тактов в секунду.

Больше задержек с обращением к разным участкам памяти, чем к собиранию в одну строку.

P.S. Паскаль не позволяет приплюсовать число к строке.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39483003
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglP.S. Паскаль не позволяет приплюсовать число к строке.

?????
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39483047
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот только sptintf лучше не использовать, если это не лаба на зачётную неделю.

_snprintf_s
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39483092
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)там вопрос был про создать строку из двух, а для этого в лобовом случае надо выделить место на результат и скопировать из двух источниковда, но если взять строку, которая поддерживает фрагментацию, плюс механизм от MS, позволяющий разделять ресурсы (строку) между объектами(CString), то создать строку из двух и скопировать в третью получается O(1)

Sergey_rb?????нас или троллят, или человек действительно не понимает, в чём суть и проблема?
...
Рейтинг: 0 / 0
60 сообщений из 60, показаны все 3 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / конкатенация строки в одну переменную
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]