|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.06.2010, 13:44 | #12 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Это понятно, что не подниму, но теоретически длинные строки ограничены этим размером. А фактически сколько операционка даст. То есть вполне возможна ситуация когда один элемент пустая строка, а второй строка в пару сотен килобайт.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
30.06.2010, 13:48 | #14 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
"Потяну\Непотяну" - это проблемы пользователей, которые себе по 18 гигов оперативы ставят.
Как осуществляется добавление в массив? Может на этой стадии идти блоками памяти, проверяя их одинаковость?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
30.06.2010, 14:06 | #16 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Ну есть общий метод класса - добавление элемента в структуру. Если элемент строка (это определяется просто overload функциями), то он передается в нашу функцию. Она-то и должна добавлять в массив данную строку, а вместо нее возвращать индекс. Все дальнейшие манипуляции осуществляются с индексом (как-то копирование мегабайтных строк). Если строка уже существует, то передается ее индекс, а увеличение массива происходить не должно. Удаление аналогично. Есть одна структура, которая отслеживает число ссылок (сколько раз брали индекс массива). Если число ссылок меньше единицы строка выкидывается из массива. Все это не сложно и реализуемо. Вопрос в скорости при добавлении и поиска новой строки в массиве.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
30.06.2010, 14:26 | #17 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а чем мой способ то не подошел?
сравнение блоков это прогон по памяти практически всей... Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
30.06.2010, 14:38 | #18 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Да, собственно чем это отличается от if String1=String2 then? И это предполагает знание длинны. То есть сначала надо сравнивать по длинам (об этом я тоже думал, наряду с первым символом).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
30.06.2010, 14:50 | #19 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
так у нас строки это стандартный string?
ну я думаю длина нам все равно нужна Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
30.06.2010, 14:54 | #20 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
ДОБАВЛЕНО: Вот наваял, если кому интересно: Код:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 30.06.2010 в 15:45. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сравнение строк | Jasper92 | Общие вопросы C/C++ | 6 | 23.12.2009 12:49 |
сравнение строк -? | Evgenii | Общие вопросы Delphi | 10 | 15.07.2009 15:28 |
С++. Сравнение строк | maxlav | Помощь студентам | 8 | 25.06.2009 04:33 |
Сравнение строк | Elm0 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 02.06.2008 09:31 |
Сравнение строк | HOMER | Общие вопросы Delphi | 7 | 04.01.2008 05:53 |