|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||||||||||||
О деталях и возможностях реализации <vector>06.04.2016, 04:17. Показов 3573. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
начало и оглавление
-
Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|