
Artem
26.10.2016
16:58:20
это монгольский язык
ты ищешь по набору и хочешь те, у которых есть весь набор

Kirill
26.10.2016
17:01:27
Желательно еще, чтобы можно было задавать исключающие теги, т.е. те, которых НЕ должно быть у объекта.

Google

Artem
26.10.2016
17:02:42
ну если наборы неравномерно распределены

ovf
26.10.2016
17:03:43
а объектов сколько?

Kirill
26.10.2016
17:04:06
Допустим, несколько миллионов. :)

Maxim
26.10.2016
17:04:31
Деревья приходят в голову сразу

Kirill
26.10.2016
17:05:26

Artem
26.10.2016
17:05:29
то можно хранить мапу "маска -> удовлетворяющие ей объекты"
и хранить маски в дереве по частоте встречи тегов
и при запросе находить в дереве все маски, удовлетворяющие твоей
и по ним поконкатенировать результаты

ovf
26.10.2016
17:05:38
ну в общем да, открываешь любую книгу про бд на главе "индексы" и реализуешь оттуда то, что нравится.

Kirill
26.10.2016
17:08:37
Надо поесть. Потом осмыслю. Спасибо.

ovf
26.10.2016
17:09:51
не забудь теги похешить

Vladislav
26.10.2016
17:13:54
http://stackoverflow.com/questions/5201003/data-structure-for-querying-whether-a-given-subset-exists-in-a-collection-of-set

Ned Ogl
26.10.2016
18:58:38
я попробую повторить свой недавний вопрос: есть ли какие-нибудь канонические правила на тему того, делать ли функцию членом, другом или оформлять вне класса?
в каком случае каким образом действовать?

Maxim
26.10.2016
19:19:57
У макконела не смотрел?

Google

Alexey
26.10.2016
19:28:07
Здравый смысл?

Alex Фэils?︙
26.10.2016
19:29:24

Ned Ogl
26.10.2016
19:29:36

Alex Фэils?︙
26.10.2016
19:30:23
эт где?
Стивен Макконелл. Совершенный код. Тут вроде в материалах есть. И скоро в кинотеатрах^W на канале @procxxlib

Ned Ogl
26.10.2016
19:30:45

Maxim
26.10.2016
19:30:52
Да. Я про него

Alex Фэils?︙
26.10.2016
19:31:39
Крутая книга. Очень классная. Хорошо структурирует инфу о проектировании софта

Kirill
26.10.2016
19:33:20
Да, я кайфанул, когда прочитал.

Maxim
26.10.2016
19:33:24
Угу. Можно прямо по главам идти, как по инструкции при разработке

Alex Фэils?︙
26.10.2016
19:33:55
Кстати, да. Надо б перечитать?

@CriOnsKry
26.10.2016
19:35:56
А время?

Maxim
26.10.2016
19:37:20
А что тебя смущает?

@CriOnsKry
26.10.2016
19:38:02
Время

Alex Фэils?︙
26.10.2016
19:38:54
Да быстро она читается
Это Кнут долго идет
Пряники лучше?

@CriOnsKry
26.10.2016
19:40:14
О чём книга то?
Или в supro?

Google

Maxim
26.10.2016
19:41:41

Rafael
26.10.2016
20:01:45
ребзи, поясните за жизнь: у меня есть вектор и я хочу сделать shared_ptr на один из его объектов, как мне это сделать?
надо обойтись без копирования

Kirill
26.10.2016
20:02:42
Звучит как неправильное использование shared_ptr.
shared_ptr владеет объектом, на который указывает.
Если объект есть в векторе, значит, им владеет вектор.

Rafael
26.10.2016
20:03:46
действительно, наверное стоит отказаться от понта в этом месте
а стоит ли вообще использовать shared_ptr для рекурсивных функций?

Alex Фэils?︙
26.10.2016
20:05:13

Rafael
26.10.2016
20:05:25

Kirill
26.10.2016
20:05:53

Maxim
26.10.2016
20:06:00
безусловно

Alex Фэils?︙
26.10.2016
20:06:19

Rafael
26.10.2016
20:06:37

Maxim
26.10.2016
20:06:45
ссылку можно

Rafael
26.10.2016
20:07:17
так какой из умных указателей для рекурсий юзать? или что вообще юзать?

Alex Фэils?︙
26.10.2016
20:08:51
Нафигачь простой образец, чтобы можно было врубиьься в контекст

Google

Maxim
26.10.2016
20:09:09
то есть ссылки тебе недостаточно?
или что?

Alex Фэils?︙
26.10.2016
20:10:38

Rafael
26.10.2016
20:12:40
тогда сначала вопрос, кто-то знает про redis protocol?

Alex Фэils?︙
26.10.2016
20:14:20
Очень знакомое слово)

Vladislav
26.10.2016
20:15:30

Admin
ERROR: S client not available

Kirill
26.10.2016
20:18:05

Alex Фэils?︙
26.10.2016
20:18:10
boost::shared_vector
Мне на конфе в Яндексе его советовали

Rafael
26.10.2016
20:18:38
https://gist.github.com/Fl0pZz/cd6209e8716731cfa67abac5dd31acb8
тут юзается boost.variant
просто я вообще хз как это должно быть правильно сделано

Vladislav
26.10.2016
20:20:08
Не понял.
https://gist.github.com/winger/f11aa3fec13f2252ecd53912046eb32f

Rafael
26.10.2016
20:20:58

Kirill
26.10.2016
20:21:38
А, ну это понятно.
Я уже перетрудился сегодня.

Rafael
26.10.2016
20:23:21
вот, немного перевормулирую вопрос:
у менят есть вектор, который используется как буфер (надо минимизировать копирования), и у меня есть объекты, которые содержат в себе ссылки на некоторые элементы буфера, так вот хочется чтобы внутри вектора был некоторый счетчик ссылок на его элементы

Gleb
26.10.2016
20:28:57

Google

Gleb
26.10.2016
20:29:59
Счетчики нужны для удаления уже ненужных объектов, удалять потом из буфера отдельные элементы плохая идея

Rafael
26.10.2016
20:31:04
Чтобы?
резонный вопрос, действительно

Gleb
26.10.2016
20:32:33
Такого рода буферы, как правило, живут очень долго, если я понял правильно. Выделил, огородил локом и вперед. Вообще отдавать во вне указатели на части вектора это лютая протечка абстракции

Rafael
26.10.2016
20:34:02
Не, я неверно сказал
Сейчас правильно опишу ситуацию

Alex Фэils?︙
26.10.2016
20:34:37
Можно отдавать не сырой ук-ль. А объект, инкапсулрующий его
Вообще, в COM (которая Object Model) используется такая шняга
Там все классы реализуют методы AddRef() и Release()
AddRef возвращает ссылку на этот же класс, увеличивая его внутренний счетчик ссылок, Release() - усеньшает на 1. Если счетчик равен 0, то Release убивает объект класса
Зафигачь сначала шаблонный класс с этими двумя методами, потос перегрузи оператор присваивания, ctor копирования (в нем делай AddRef()), переноса и dtor (в нем Release)

Rafael
26.10.2016
20:41:29
Вот что происходит у меня в программе:
1) я получаю данные из сокета в виде обычной строчки
2) есть буфер элементов, содержащие в себе ссылки на куски сырых данных из этой входной строки(так я минимизирую копирования), дальше я уже что-то там делаю с этими элементами

Alex Фэils?︙
26.10.2016
20:42:35

Rafael
26.10.2016
20:46:51
Ох ладно, сделаю через обычный указатель, к черту эти понты
Copy-On-Write делай
Cow не нужен, потому что изменения происходят только при дисереализацти данных, дальше они нигде не изменяются

Alex Фэils?︙
26.10.2016
20:48:46
Мне тут идея пришла. Чо если отправлять уведомление всем, кто запросил птр на буфер, о том, что буфер изменился?

Rafael
26.10.2016
20:56:24
И чет это больше чем дофига дорого

Ned Ogl
26.10.2016
21:24:28
есть ли способ статически прилинковать динамическую либу?