@ProCxx

Страница 735 из 2477
Michael
02.04.2017
20:53:48
могу предотвратить только резервом с большим запасом, но сам понимаешь, это говнокод который может сломаться просто так

Andrei
02.04.2017
20:54:16
Очень странная задача, тогда.

В общем не вижу проблем в хранении вектор + индекс.

Google
Andrei
02.04.2017
20:54:46
Напиши обёртку, если хочется.

Michael
02.04.2017
20:54:59
ну, сейчас так и есть. ок

задача не странная

ты мне скажешь почему она странаая если пояснишь как иметь вектор указателей И ПРИ ЭТОМ каждое значение указателя аллоцировать локально подряд

тогда это будет убийством обоих зайцев

Andrei
02.04.2017
20:57:15
А зачем тебе надо именно подряд в памяти?

Обычно это надо, если тебе вообще-то размер известен.

it-trend
02.04.2017
20:57:37
А зачем два вектора? Используй пары, всё равно тебе отдельно эти вектора не нужны?

Michael
02.04.2017
20:57:41
размер структуры мне безусловно известен

Andrei
02.04.2017
20:57:52
да структура не при чём тут.

Я про размер вектора.

Michael
02.04.2017
20:58:03
Andrei
02.04.2017
20:58:28
Ты что заранее не можешь посчитать количество архивов?

Google
Andrei
02.04.2017
20:58:43
А потом выделить ровно столько, сколько надо.

Michael
02.04.2017
20:58:56
громоздко, но можно

там бывают архивы в архивах

не то чтобы они были мне сильно нужны впрочем...

Andrei
02.04.2017
20:59:18
Да ничего громоздкого, наоборот. По перформансу будет оптимально зато.

Michael
02.04.2017
20:59:28
угу, это норм решение

тогда вектор один раз аллоцируется и никуда не уедет, раз

Andrei
02.04.2017
20:59:40
Если надо часто бегать по массиву этому особенно.

Michael
02.04.2017
20:59:42
можно будет иметь указатели, два

вот и все

Andrei
02.04.2017
20:59:46
Да.

Michael
02.04.2017
20:59:56
Да ничего громоздкого, наоборот. По перформансу будет оптимально зато.
так о чем и речь, я почему про локальность-то и спрашиваю

мне в принципе насрать на производительность тут, но интерес на будущее есть

задача довольно типовая

в общем индексов буду избегать потому что как познал на своей жопе это сложно рефакторить и не наделать дел

потому что сложно читается

потому и поднял вопрос

в следующий раз буду начинать с указателей и оптимизировать по нужде в выяснение всего размера предварительно

Dmitry
02.04.2017
21:06:03
Друзья, кто из вас занимается бизнесом, стартапами, или является тимлидом, HR. В общем нужны рекрутеры, как в душе так и на яву. Ответьте, пожалуйста, на один вопрос https://vk.cc/6syV26 Статистику открою после сбора ответов у себя на странице https://vk.com/sannikovdmitry

Daniil
02.04.2017
21:07:08
язабан

Google
Michael
02.04.2017
21:07:35
плюс плюс

Artur
02.04.2017
21:08:09
Блин, идиотская ошибка. Надо было в скобки засунуть просто место где вызывается метод. interpPoints[i].y = (this->*interpFn)(interpPoints[i].x);

Michael
02.04.2017
21:08:27
я сразу хотел предложить скобки но думал это для тебя очевидно и так

да и сам в голове не скажу куда скобки

Artur
02.04.2017
21:08:51
да я проглядел

Alex Фэils?︙
02.04.2017
21:09:49
Блин, идиотская ошибка. Надо было в скобки засунуть просто место где вызывается метод. interpPoints[i].y = (this->*interpFn)(interpPoints[i].x);
Самое забавное, что скобки - это универсальный вид магии. Они даже защищают от редефайнутых функций, типа min() в windows.h

Artur
02.04.2017
21:11:00
лол

будем обращать большее внимание на это

Michael
02.04.2017
21:11:51
просто как сказал мне один чувак

если возникает необходимосит ставить скобки в типах

это прямой путь в алиас

и все нуль проблем

Alexander
02.04.2017
21:12:16
тогда это будет убийством обоих зайцев
А зайцев зачем убивать? Они не виноваты же

Michael
02.04.2017
21:12:33
не виноваты до тех пор, пока не влияют на производительность!

вдруг это медленные зайцы.

еще скажите такую штуку

что можно использовать вместо чар поинтеров для буферов данных?

просто чар вектор?

или есть специализированные штуки?

Alex Фэils?︙
02.04.2017
21:20:17
Для фиксированной длины std::array можно

Google
Michael
02.04.2017
21:20:30
о, спасибо

(да, я именно настолько не в курсе STL)

да, это годится.

Alex Фэils?︙
02.04.2017
21:24:54
(да, я именно настолько не в курсе STL)
Да ничего страшного, я тож не сильно в курсе, поэтому в соседнем чате выкладываю скрины бота с парсом сайта на си?

Gregory
02.04.2017
21:42:27
@micktu по поводу вектора и ссылок на его элементы - а как вы эту задачу решали в других ЯП?

Michael
02.04.2017
21:48:58
в других языках программирования у меня нет выбора

это всегда рефренс

там не бывает значения у массива

там не бывает значений у его элементов

я всегда могу взять референс на элемент и он доступен

фактически то же самое поведение тут дает вектор указателей

но у меня есть опция иметь вектор значений... ну и понеслась

Gregory
02.04.2017
22:06:53
Ок, понял. Бывали у нас подобные задачи когда требовалось линейного расположения и при этом ссылки на элементы. Колво элементов заранее не было известно, элементы только добавлялись. Вектор был обернут классом гарантирующим только добавление элементов. В качестве ссылки на элемен ы возвращалась оболочка ссылка на вектор + да, да, индекс. О чем уже говорили Ничего плохого тут нет

Две эти оболочки просто дают нужные гарантии

Andrei
02.04.2017
22:07:49
По производительности плохо, а так ничего, конечно.

Gregory
02.04.2017
22:08:58
в цикле по "ссылкам" этим никто не ходит - есть же оригинальный вектор и пефоманс там

эти ссылки для редких точечных рандомных обращений

классика - по вектору рендерим обьекты по этим ссылкам обращаемся из сценариев бизнес логики

Michael
02.04.2017
22:10:42
во, пошла дискуссия

Andrei
02.04.2017
22:10:43
Но это неудобно.

Google
Andrei
02.04.2017
22:10:59
Если на перформанс плевать, то почему бы просто не вектор уник-поинтеров.

Michael
02.04.2017
22:11:02
грегорий, а движок чего вы программировали?

Andrei
02.04.2017
22:11:11
А пользователю брать указатель\референс.

Это во всех смыслах каноничное решение.

А вектор + оффсет чем лучше в данной ситуации?

Michael
02.04.2017
22:11:54
Andrei
02.04.2017
22:12:00
Нет!

Пользователь прямо берет реф на объект.

Прямо на сам объект.

Michael
02.04.2017
22:12:37
ну в моем случае не совсем так, потому что есть много мест, где хранится указатель на этот объект

Andrei
02.04.2017
22:12:44
И что?

Michael
02.04.2017
22:12:47
грубо говоря все файлы контейнера ссылаются на контейнер

Andrei
02.04.2017
22:12:55
Пусть ссылаются.

Объект сконструированный через make_unique уже никогда своего места не изменит.

Michael
02.04.2017
22:13:45
(тфв еще ни разу не использовал плюсовые указатели)

сразу видно что не разбираюсь

в сортах

Andrei
02.04.2017
22:14:24
Поэтому на него безопасно брать референс. Единственная гарантия которую надо соблюсти — жизнь вектора с юникпоинтерами — дольше чем использующих его.

Но этому легко удовлетворить.

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