|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
Быстрый способ создания строковой переменной из значений нескольких строковых переменных26.12.2017, 21:52. Показов 5965. Ответов 71
Метки нет (Все метки)
К примеру, в javascript'e из трёх исходных строковых переменных создать одну конкатенированную рекомендуется следующим способом:
надо поместить значения исходных переменных в массив, а затем "соединить" его элементы методом join (), используя пустой разделитель '' Эта операция y = [x1, x2, x3].join (''); выполнится много быстрее, чем последовательная конкатенация трёх значений в одну переменную А как с этим обстоит дело в C++ ? Имеется ли в нём аналог метода join () и имеет ли вообще смысл этим заморачиваться? Извиняюсь за ламерский вопрос, но этот раздел вроде как для таких вопросов и предназначен, так? PS. спрашивал об этом же у "явщика", тот ответил, что для работы со строками у него есть класс "стринг-билдер", который всё это вполне эффективно делает, а как именно - ему совсем неинтересно
0
|
|
| 26.12.2017, 21:52 | |
|
Ответы с готовыми решениями:
71
Проверка значений нескольких строковых переменных
Как при выборе элемента Листбокса изменить значения нескольких строковых переменных |
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|||
| 27.12.2017, 01:40 | |||
|
Добавлено через 3 минуты
0
|
|||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
||
| 27.12.2017, 01:49 [ТС] | ||
|
0
|
||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||
| 27.12.2017, 01:50 | ||
|
0
|
||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 27.12.2017, 01:54 [ТС] | |
|
массивы подстрок из 2-х, 3-х и т. д. символов должны сохраниться после прохода по строке (после выхода из цикла)
и ещё -- строка после окончания работы цикла более будет вовсе недоступна (она "одноразовая")
0
|
|
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 27.12.2017, 01:57 | |
|
kalabuni, Сколько различных длин подстрок нужно и каких?
0
|
|
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|||
| 27.12.2017, 02:11 [ТС] | |||
![]() Добавлено через 3 минуты несколько массивов, клиент будет выбирать - галочки поставит: "от двух до четырёх", "от двух до пяти", "от двух до семидесяти"... всегда известен только нижний предел - константа 2 мне не нужна от вас реализация на си++ мне нужно понять -- как описать алгоритм для реализации этой задачи на си++ Добавлено через 6 минут на javascript'e эту задачу я уже решил, показал описание алгоритма и демонстрацию работы программисту-сишнику, чтобы он переложил это на си++, он впал в ступор... вот я к вам и обращаюсь за помощью
0
|
|||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||||||
| 27.12.2017, 02:20 | ||||||
0
|
||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 27.12.2017, 02:22 | |
|
kalabuni,
Во первых нужен вектор который содержит unordered_setы. Потом 1) Можно взять промежуточную строку, длиной, совпадающей с максимальной подстрокой и инсертить в сеты подстроки этой подстроки (с конца). На каждом вводе символа push_back, если размер превышает максимальный убирать нулевой символ (это плохо с т.з. быстроты). 2) Можно ускорить взять столько стрингов - сколько нужно подстрок. Добиться заполнения их лесенкой. На каждом символе добавлять символ в конец каждого и инсертить в соответствующий сет. Если размер максимальный стирать строку. Это плохо с т.з. памяти Можно сделать кольцевой буфер. Если сделать его двойной длины (с повторением данных), опять же substr.
0
|
|
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 27.12.2017, 02:22 | |
|
Дубль.
0
|
|
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
| 27.12.2017, 02:39 | |
|
Обращаться к строкам как в
arr[i][j]Добавлено через 10 минут Хоть мой способ значительно медленнее чем предлагает avgoor, но самый просто реализуемый. Для быстрых способов исходную строку либо её копию сохранять таки надо, а массивы делать не массивами строк, а массивами указателей на первые буквы слов в исходной строке.
0
|
|
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
||
| 27.12.2017, 02:42 [ТС] | ||
|
и о каких-таких "словах" вы всё пишете уже не в первый раз? я оперирую понятиями "строка" и "подстрока" (часть этой самой "строки")
0
|
||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
||||
| 27.12.2017, 02:46 | ||||
|
Добавлено через 1 минуту
0
|
||||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 27.12.2017, 02:53 [ТС] | |
|
разумеется, искомые массивы для удобства к ним обращения в процессе работы программы сведены в один массив массивов
в a [2] хранится массив всех 2-хсимвольных подстрок, в a [3] -- массив всех 3-хсимвольных и т.д.
0
|
|
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 27.12.2017, 02:58 | |
|
kalabuni, операция поиска в массиве - дорогая (n). Операция поиска в отсортированном массиве - дешевле (log n) зато дорогой получается операция вставки. Если вы используете для хранения промежуточных результатов массивы (и ищете на каждой итерации, есть ли в них уже искомая строка) - попытка оптимизировать строковые операции - это экономия на спичках.
0
|
|
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||||||
| 27.12.2017, 03:20 | ||||||
|
Возможно теперь правильно понял что требуется:
0
|
||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 27.12.2017, 03:23 | |
|
TRam_, Выводит АB CD .... А где BC?
0
|
|
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
||
| 27.12.2017, 03:25 [ТС] | ||
|
на шаге, когда я прочитываю символ C, у меня уже окончательно имеется элемент AB 2-хсимвольного массива (назову таковые дабл-элементами), и именно на этом шаге я использую этот дабл-элемент как первую часть вновь создаваемого трипл-элемента ABC, затем создаю новый дабл-элемент BC, который на следующем шаге используется как первая часть трипл-элемента BCD и так далее и всякий раз (n-1)-элемент используется для создания n-элемента имхо, всё же просто и логично, разве нет?
0
|
||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 27.12.2017, 03:52 | |
|
kalabuni, в достаточно длинной строке подстрока, например, "AB" встретится много раз. Вы уверены, что в массиве подстрок она тоже должна встречаться много раз? Обычно, в таких заданиях требуют однократного вывода. Приведите полный текст задачи.
0
|
|
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 27.12.2017, 03:59 [ТС] | |
|
0
|
|
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 27.12.2017, 04:05 | |
|
kalabuni, а мне покзалось что вы написали "суть задачи" а не полный текст. Откуда эта задача?
0
|
|
| 27.12.2017, 04:05 | |
|
Сложение значений переменных как строковых при их численном значении Получить значение переменной из потока без создания глобальных переменных Вывод значений нескольких переменных Ввод нескольких значений переменных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|