|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||||||||||||
О деталях и возможностях реализации <vector>06.04.2016, 04:17. Показов 3501. Ответов 82
Метки нет (Все метки)
из кода AnsiString (той которая в комплекте C++ Builder)
в подавляющем большинстве случаев разумно вот так:
0
|
||||||||||||||||||
| 06.04.2016, 04:17 | |
|
Ответы с готовыми решениями:
82
О возможностях реализации поставленных задач Скрыть <iostream> в деталях реализации
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||
| 07.04.2016, 03:34 [ТС] | ||||||||
|
Добавлено через 4 минуты Добавлено через 2 минуты Добавлено через 2 минуты Добавлено через 1 минуту
0
|
||||||||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||||
| 07.04.2016, 03:54 | ||||
|
Так я еще раз повторяю, константное амортизированное (суммарное время пиханий/число пиханий) время ваш велосипед гарантирует?
0
|
||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 07.04.2016, 05:55 [ТС] | |||||
|
Добавлено через 3 минуты Добавлено через 19 минут
0
|
|||||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||||||||
| 07.04.2016, 06:06 | |||||||||
0
|
|||||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||
| 07.04.2016, 07:04 [ТС] | ||||||
|
P.S.: да кстати, похоже STL вообще ничьи потребности не осилила, потому как не встречал использования оной ни в коде от Борланда (хотя на борту лежит в версии Dinkumware), ни в коде от Майкрософт (хотя на борту в своей патентованной версии, работающей местами через расширения синтаксиса), ну если где то и проскакивает у мелкомягких, то по мелочи на задворках. А вся основная работа работается лисапетами как вы их называете. Добавлено через 1 минуту Добавлено через 32 минуты Добавлено через 6 минут Добавлено через 8 минут P.S.: про оптимизацию я это к тому что на все случаи жизни не угадаешь, поелику оптимизация по одному признаку, нужная в одном конкретном случае зачатую противоречит оптимизации нужной в другом конкретном случае. Поэтому что бы там коммитет в плане какой либо библиотеки не пытался стандартизировать, лисапетили и лисапетить будут, и правильно делают. А те кто это еще неосилили и есть неосилянты. Добавлено через 9 минут Ну а если так смотреть, то два наиболее эффективных способы отладки это трассировка с точками останова и debug echo. И сколько не холиварили на тему что из этих спсобов лучше, то и тот и тот имеет свои как огромные плюсы так и нехватку плюсов второго способа. А соостветсвенно те кто при мозгах всегда пытались два эти способа комбинировать, с самой зари компьютерных технологий. Так вот throw это по большому счету кроме всего остального еще и debug echo с автоматически установленной на него под дебаггером точкой останова - т.е. мощнейший инструмент отладки о котором мечтали во все времена. И не использовать его просто глупо.
0
|
||||||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 07.04.2016, 07:13 | |||
|
Вы определитесь, вам экономию памяти или быструю работу? Потому как и то, и то разом не бывает.
0
|
|||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||
| 07.04.2016, 10:59 [ТС] | |||||||
|
Ну а для относительно небольших последовательностей, особенно которые занимаются преимущественно накоплением связей (подавляющее большинство случаев использования динамических массивов) таки получается c GrowStep оптимальней. Хотя опять же. Многое зависит: Но вообще при таких раскладах более оптимальна страничная организация, с задаваемым размером станицы, а обычный массив с GrowStep пользуется для хранения адресов страниц. Вообще реалтаймовые алгоритмы местами сильно отличаются от нереалтаймовых. Хотя бы тем что необходимо оптимизировать не общее время а гарантированно уложится в каждый тамфрейм, причем очень желательно с небольшой разницей между отдельно взятыми таймфреймами. Добавлено через 53 минуты А страничная организация - массив страниц по 2^k элементов в каждой странице. Нужно увеличить размер - выделили еще страницу, добавили ее в массив страниц. а в operator [] выбираем элемент как Data[Id>>k][Id&((1<<k)-1)]; Рост вообще очень быстрый. Причем как спереди так и сзади. Ужатие тоже. Но как видите есть небольшой оверхед при доступе. Добавлено через 54 минуты Добавлено через 5 минут Добавлено через 11 минут Хотя дело даже не в том что надо определится по чем оптимизировать. Главный вопрос в том что универсально подходящей везде оптимизации быть просто не может. Для примеру: тому же массиву со страничной организацией для выполнения своих внутренних операций нужен массив с копированием при ресайзе. При этом к примеру локальному массиву (для промежуточных данных) живущему внутри метода, вполне возможно и важно быстрое наращивание количества элементов. А вот долгоживущему массиву-полю, хранящему связи объекта, таки важна оптимизация по памяти и скорости доступа. Добавлено через 13 минут При этом в большинстве случаев добавление будет в рандомную позицию, а не в конец, т.к. всем известно что неупорядоченные связи ведут к std (sexually transmitted disease - заболевания передаваемые половым путем (толковый словарь английского языка).
0
|
|||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|||
| 07.04.2016, 12:53 | |||
|
0
|
|||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 07.04.2016, 14:10 [ТС] | |||
|
Добавлено через 12 минут И останавливается он не в месте обработки а в месте выброски. т.е. оно на этот момент времени еще свежее и необработанное и даже не передавшее управление из того места где выброшено.
0
|
|||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
||||||||
| 07.04.2016, 14:14 | ||||||||
|
Если ваш дебагер остановится здесь:
0
|
||||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 07.04.2016, 14:25 [ТС] | ||||
|
Добавлено через 5 минут
0
|
||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 07.04.2016, 14:26 | |
|
0
|
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 07.04.2016, 14:33 [ТС] | ||
|
Вообще бывают два вида нештатных ситуаций - не связанные с алгоритмом разрабатываемой программы (т.е. отсутствие файла, отсутствие связи по сети и т.п.) и связанные непосредственно с алгоритмом - т.е. вылет за пределы массивов, обращение по висящим указателям и т.п. Пока возникают экскепшины по второму виду ни о какой работоспособности кода говорить нельзя, а значит нельзя и запускать его в продакшн. А вот в отладке именно этих ошибок остановка по экскепшинам очень здорово помогает.
0
|
||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|||||||||
| 07.04.2016, 14:41 | |||||||||
0
|
|||||||||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 07.04.2016, 17:50 | |||
|
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||||||||||||
| 07.04.2016, 18:45 | ||||||||||||||||||||||
|
я мог бы понять позицию человека, который сказал бы: я знаю stl, просто мне он не нравится. но ваша позиция: не знаю, и знать не хочу. это - позиция неосилятора. (которую сами же и изготовили). который вы постулируете. тоже самое, что и с эксепшенами. любая моральная иде покажет стек вызовов. вы похоже так и не поняли. вот вам пример:
корректности вызывающей стороны. в дебаге он проконтролирует, что то, чего не должно быть - не будет. во втором случае - эксепшен. пользователь может ввести все что угодно. самолет не должен упасть и разбиться, только потому, что пилот нажал не на ту кнопку. такие данные всегда должны проверяться. проверка не должна выпиливаться из релиза. и у вызывающей стороны должна быть возможность реализовать сценарий на случай отказа. вот именно для того, что бы вызывающая сторона могла реализовать сценарий восстановления после некорректных данных, и был создан механизм исключений. он предназначен для отказоустойчивости. выше я задал вам вопрос, на который вы мне так и не дали морального ответа. рассмотрим пример:
я спрошу вас ещё раз: вы ловушки тоже под дебажные дефаны закатываете?
0
|
||||||||||||||||||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||||||||||||||||
| 08.04.2016, 04:00 [ТС] | ||||||||||||||||||||||
|
Добавлено через 1 минуту Добавлено через 8 минут Пример:
Соответсвенно, проверки включены на стадии отладки, только для того чтобы отладить корректность вычисления входных данных. Опять же. Если входные данные не вводятся непосредственно а как либо вычисляемы, что и есть в подавляющем большинстве случаев, то екскепшен ну ничего хорошего тоже не сулит. Ассерт тем более. Так или иначе аварийное завершение всей программы при ассерте, или как минимум какой либо ее ветки вычислений при екскепшине. Результат тот же - птичка на земле. Добавлено через 49 минут Соответсвенно в релизе все эти проверки выпиливаются. Добавлено через 4 минуты Добавлено через 5 минут А те екскепшины которые по выходу за границы массива и т.п. вообще предназначены исключительно для ловли их дебаггером. Потому что никакая осмысленная обработка таких ситуаций кроме изменения кода программы невозможна. Добавлено через 9 минут Добавлено через 3 минуты В отличии к примеру от эскепшинов при недостаточном количестве памяти при реалоке. Эти никуда не выпиливаются. Добавлено через 4 минуты Добавлено через 3 минуты Опять же. Зависит от назначения. Если массив живет дольше одного таймфрейма то оптимизировать нужно время затрачиваемое в одном таймфрейме и равномерность распределения затраченного времени между таймфреймами. Добавлено через 2 минуты Добавлено через 10 минут Добавлено через 1 минуту Добавлено через 10 минут Если заметили даже штатные либы от всех производителей идут в двух видах бинарника - debug и release. Чем они по вашему отличаются кроме выпеленной в release части проверок? Добавлено через 5 минут
1
|
||||||||||||||||||||||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||||
| 08.04.2016, 04:18 | |||||
|
0
|
|||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 08.04.2016, 04:46 [ТС] | |||||
|
Как будто никогда банки видеопамяти не переключали ей богу. Может все роблемы что эпоху "На всех 640k" не застали?
0
|
|||||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||||
| 08.04.2016, 05:34 | ||||
|
Если брать фиксированное 2^k, то все еще хуже. Размер страницы маленький - тормозит реалок списка страниц. Размер страницы большой - просто дикий оверхед по памяти, мой буфер на 16 элементов и рядом не лежал.
0
|
||||
| 08.04.2016, 05:34 | |
|
error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Vector<int>::Vector<int>(void)" (?0?$Vector@H@@QAE@XZ) в функции _main О возможностях С++
О возможностях ACCESS Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|