
melancholiac
11.05.2017
13:58:40
union в C можно использовать для динамичесого предстваления типа данных?
т.е. связка из метки типа + union всех возможных типов

Berkus
11.05.2017
13:59:51

Antony
11.05.2017
14:02:33

Google

melancholiac
11.05.2017
14:03:14
а есть альтернативы?
если говорить только об Си

Berkus
11.05.2017
14:04:44
можно держать tag + pointer
и маллокать нужный тип

Simon
11.05.2017
14:05:06

Berkus
11.05.2017
14:05:18
всякое барахло до sizeof(pointer) можно сувать прямо туда как values

Ivan
11.05.2017
14:05:40
а есть альтернативы?
например в исходниках Python 2.7 можно посмотреть реализацию PyObject и всех остальных типов

melancholiac
11.05.2017
14:05:55
я сейчас просто 3ую ветку ковыряю

Ivan
11.05.2017
14:06:09
я просто не знакю как в ветке 3+ они сделали

melancholiac
11.05.2017
14:06:23
понял, спасибо

Antony
11.05.2017
14:08:02

Evgeniy
11.05.2017
14:08:23

Google

Berkus
11.05.2017
14:08:34
да я знаю что разберется
с -O0 правда затупит

Evgeniy
11.05.2017
14:09:13
впрочем в данном случае &1 просто логичнее

Alexander
11.05.2017
14:10:05

Antony
11.05.2017
14:15:00
в теории - да :)

Alex Фэils?︙
11.05.2017
14:24:04
GitHub - rkapsi/patricia-trie: Practical Algorithm to Retrieve...
github.com
PATRICIA Trie. Practical Algorithm to Retrieve Information Coded in Alphanumeric. The PATRICIA Trie is also known under the names Radix and Crit Bit Tree.
Radix tree - Wikipedia
en.wikipedia.org
Donald R. Morrison first described what he called "Patricia trees" in 1968;[4] the name comes from the acronym PATRICIA, which stands for "Practical Algorithm To Retrieve Information Coded In...

Simon
11.05.2017
14:41:20

Vladislav
11.05.2017
14:49:58
если index - это бит, то почему не byteNum = index / 8 (или >> 3, если хочется)?

Simon
11.05.2017
14:52:01
лоло, похоже на магию которую я не помню, надо будет пересмотреть кодес и литературу перечитать
И тогда вопрос, как оно работало корректно
Надо будет затестить лоло

Berkus
11.05.2017
14:52:34
ну это похоже просто неверная имплементация )
перезаписывала память где-то далекооо
(ну или читала)

Vladislav
11.05.2017
14:53:29
?

Simon
11.05.2017
14:53:33
я на достаточно нормальных тестах тестировал
Короче буду разбиратьчя

Berkus
11.05.2017
14:53:48
пример теста есть?

Google

Simon
11.05.2017
14:54:09
просто запросы на удаление и поиск
И вставку
С разной длины строками
Короче, пока не затещу ничаво не скажу!

Berkus
11.05.2017
14:54:41
да тут вопрос про тест функции теста этого бита )

Vladislav
11.05.2017
14:55:45
ну малоль, там отображение памяти закольцовано
всяко бывает :)

Simon
11.05.2017
14:56:01
я исходил их того, что раз работает интерфейс, то и внутренние функции работают
Ну и в такой функции трудно ошибиться(но можно ;-))

Vladislav
11.05.2017
14:56:35
simon the shame ?

Andrei
11.05.2017
15:42:06

Daniyal
11.05.2017
15:42:27
Кто -нибудь работал с boost.property tree? Как и чем вы сравнивали два дерева?

Daniyal
11.05.2017
15:43:09
Если быть чуть точнее, то как и чем сравнивать два дерева, в которых порядок нодов не совпадает
Но уровень вложенности и содержимое совпадают
Встоонный sort и стандартный operator == не помогают
Самописный компаратор тоже

Andrei
11.05.2017
15:45:13
Руками, рекурсивно.
И довольно неоптимально выйдет, если чо.
Если нужно именно сравнение, предлагаю написать хешер.

Daniyal
11.05.2017
15:47:34
Как вариант, но что бы не напороться на несовпадающий порядок придется элементы первого дерева искать по тем же путям во втором. Что не избавляет от проблемы, когда первое только подмножество второго

Google

Berkus
11.05.2017
15:47:40

Andrei
11.05.2017
15:47:45
И сравнивать хеши.

Александр
11.05.2017
15:47:48

Andrei
11.05.2017
15:47:55
Пренебречь.

Daniil
11.05.2017
15:48:01
тогда уже сравнивать руками))

Berkus
11.05.2017
15:48:05
при коллизии сравнивать ручками рекурсивно лоль

Daniyal
11.05.2017
15:48:08
Хэш - уже лучше

Admin
ERROR: S client not available

Александр
11.05.2017
15:48:28
хэш имеет смысл, если сравнивать часто и много, а также много false'ов

Andrei
11.05.2017
15:48:41
Нет, просто забить на сравнение руками и использовать только хеши. Взять просто подлиннее. И хешировать правильно.

Daniyal
11.05.2017
15:49:43
Спасибо всем за обсуждения и Андрею в особенности за идею с хэшом

Александр
11.05.2017
15:49:51
а вдруг спутник с орбиты уйдёт?

Andrei
11.05.2017
15:49:52
Но если нужны гаранртии, то да, хеш, потом руками.

Daniyal
11.05.2017
15:50:37
Особо сильные гарантии не нужны, компаратор нужен только для тестов

Александр
11.05.2017
15:50:51
тогда пофиг

Daniyal
11.05.2017
15:51:01
Вот и я так же думаю)

Александр
11.05.2017
15:51:11
но лучше где-то записать, что при ошибке смотреть в сторону хэшей

Daniyal
11.05.2017
15:51:34
Хорошее замечание, спасибо)

Daniil
11.05.2017
15:54:59

Google

Andrei
11.05.2017
15:55:15
Да.

Александр
11.05.2017
15:55:16
конечно
тем более, там коллизии очень вероятны

Daniil
11.05.2017
15:55:35
окей

Andrei
11.05.2017
15:56:26

Aidar
11.05.2017
15:57:23
Там по умолчанию должны быть неплохие

Александр
11.05.2017
15:57:33
конкретные цифры - если N объектов на M корзин -> в среднем по N/M с одинаковым хешом

Aidar
11.05.2017
15:58:43
Только ты не знаешь сколько сейчас бит используется

Александр
11.05.2017
15:58:46
если объект размера значащих K бит, то есть 2^K его различных копий

Antony
11.05.2017
15:59:24

Александр
11.05.2017
15:59:34
сам хэш может быть довольно уникальным, но unordered берут же от него % basket_num. может от реализации еще зависеть

Aidar
11.05.2017
16:01:01
Я о том же

Antony
11.05.2017
16:01:22

Aidar
11.05.2017
16:01:48
Вроде это изначально так должно быть нет?

Александр
11.05.2017
16:01:49

Aidar
11.05.2017
16:02:08
Ну яб сразу так написал еслиб мне сказали писать хэштаблицу

Александр
11.05.2017
16:03:10
это вопрос похожий на "а как перевыделять память в динамических контейнерах - в 1.5 раза или по простым числам? или в 2?"

Aidar
11.05.2017
16:03:30
В 2