@ProCxx

Страница 356 из 2477
Artem
26.10.2016
16:58:20
это монгольский язык

ты ищешь по набору и хочешь те, у которых есть весь набор

Kirill
26.10.2016
17:01:27
ты ищешь по набору и хочешь те, у которых есть весь набор
Ну вот, допустим, у объекта 1 есть теги A, B и D. У объекта 2 есть теги B и C. Если запрос на тег B, то должны быть выданы оба (на самом деле, один случайный из них). Если запрос B и D, то только первый.

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

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
Здравый смысл?

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

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
Это Кнут долго идет
Ага, хотя бы потому что кнут раз в 5 больше

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
О чём книга то?
О том, как надо и не надо проектировать софт

Ага, хотя бы потому что кнут раз в 5 больше
И по восприятию (по мне как) тяжелее

Rafael
26.10.2016
20:05:25
а стоит ли вообще использовать shared_ptr для рекурсивных функций?
точнее даже не так, что лучше использовать для рекурсивных функций

Kirill
26.10.2016
20:05:53
а стоит ли вообще использовать shared_ptr для рекурсивных функций?
Если для передачи в рекурсивную функцию, то не нужен он.

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
Была херня с этим, лучше забить. В векторе можно сыроуказатели хранить
не стоит, они инвалидируются при изменении размера вектора

так какой из умных указателей для рекурсий юзать? или что вообще юзать?
что значит - для рекурсий? Передавать ownership куда-то нужно?

Admin
ERROR: S client not available

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
https://gist.github.com/winger/f11aa3fec13f2252ecd53912046eb32f
пояснение: из-за реалокации данных

Kirill
26.10.2016
20:21:38
А, ну это понятно.

Я уже перетрудился сегодня.

Rafael
26.10.2016
20:23:21
https://gist.github.com/Fl0pZz/cd6209e8716731cfa67abac5dd31acb8 тут юзается boost.variant
есть идеи? т.е если по обычному казателю передавать, то все ок получается, но мне хочется попробовать что-то более крутое

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

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) есть буфер элементов, содержащие в себе ссылки на куски сырых данных из этой входной строки(так я минимизирую копирования), дальше я уже что-то там делаю с этими элементами

Rafael
26.10.2016
20:46:51
Ох ладно, сделаю через обычный указатель, к черту эти понты

Copy-On-Write делай
Cow не нужен, потому что изменения происходят только при дисереализацти данных, дальше они нигде не изменяются

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

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

Страница 356 из 2477