Danil
ты предлагаешь в классе rawptr держать на тот, что лежит в юнике в векторе?
Micktu 😬
к указателям у меня вопросов и претензий нет
Micktu 😬
с указателями мне все очевидно
Micktu 😬
я просто хотел аллоцировать пачку структур, а не каждую структуру отдельно - поэтому не очень хотел иметь вектор указателей.
Aleksandr
std:ref
Andrei
никакой магии?
Если знаешь верхнюю границу на количество своих архивов, или чётко знаешь, сколько их, делаешь reserve и тебе гарантируется, что они никуда не уедут.
Andrei
std:ref
При чем тут это? он тебе не поможет ну никак.
Micktu 😬
могу предотвратить только резервом с большим запасом, но сам понимаешь, это говнокод который может сломаться просто так
Andrei
Очень странная задача, тогда.
Andrei
В общем не вижу проблем в хранении вектор + индекс.
Andrei
Напиши обёртку, если хочется.
Micktu 😬
ну, сейчас так и есть. ок
Micktu 😬
задача не странная
Micktu 😬
ты мне скажешь почему она странаая если пояснишь как иметь вектор указателей И ПРИ ЭТОМ каждое значение указателя аллоцировать локально подряд
Micktu 😬
тогда это будет убийством обоих зайцев
Andrei
А зачем тебе надо именно подряд в памяти?
Andrei
Обычно это надо, если тебе вообще-то размер известен.
it-trend
А зачем два вектора? Используй пары, всё равно тебе отдельно эти вектора не нужны?
Micktu 😬
размер структуры мне безусловно известен
Andrei
да структура не при чём тут.
Andrei
Я про размер вектора.
Andrei
Ты что заранее не можешь посчитать количество архивов?
Andrei
А потом выделить ровно столько, сколько надо.
Micktu 😬
громоздко, но можно
Micktu 😬
там бывают архивы в архивах
Micktu 😬
не то чтобы они были мне сильно нужны впрочем...
Andrei
Да ничего громоздкого, наоборот. По перформансу будет оптимально зато.
Micktu 😬
угу, это норм решение
Micktu 😬
тогда вектор один раз аллоцируется и никуда не уедет, раз
Andrei
Если надо часто бегать по массиву этому особенно.
Micktu 😬
можно будет иметь указатели, два
Micktu 😬
вот и все
Andrei
Да.
Micktu 😬
Да ничего громоздкого, наоборот. По перформансу будет оптимально зато.
так о чем и речь, я почему про локальность-то и спрашиваю
Micktu 😬
мне в принципе насрать на производительность тут, но интерес на будущее есть
Micktu 😬
задача довольно типовая
Micktu 😬
в общем индексов буду избегать потому что как познал на своей жопе это сложно рефакторить и не наделать дел
Micktu 😬
потому что сложно читается
Micktu 😬
потому и поднял вопрос
Micktu 😬
в следующий раз буду начинать с указателей и оптимизировать по нужде в выяснение всего размера предварительно
Dmitry
Друзья, кто из вас занимается бизнесом, стартапами, или является тимлидом, HR. В общем нужны рекрутеры, как в душе так и на яву. Ответьте, пожалуйста, на один вопрос https://vk.cc/6syV26 Статистику открою после сбора ответов у себя на странице https://vk.com/sannikovdmitry
Daniil
язабан
Micktu 😬
плюс плюс
Albert
Блин, идиотская ошибка. Надо было в скобки засунуть просто место где вызывается метод. interpPoints[i].y = (this->*interpFn)(interpPoints[i].x);
Micktu 😬
я сразу хотел предложить скобки но думал это для тебя очевидно и так
Micktu 😬
да и сам в голове не скажу куда скобки
Albert
да я проглядел
🦥Alex Fails
Блин, идиотская ошибка. Надо было в скобки засунуть просто место где вызывается метод. interpPoints[i].y = (this->*interpFn)(interpPoints[i].x);
Самое забавное, что скобки - это универсальный вид магии. Они даже защищают от редефайнутых функций, типа min() в windows.h
Albert
лол
Albert
будем обращать большее внимание на это
Micktu 😬
просто как сказал мне один чувак
Micktu 😬
если возникает необходимосит ставить скобки в типах
Micktu 😬
это прямой путь в алиас
Micktu 😬
и все нуль проблем
Micktu 😬
не виноваты до тех пор, пока не влияют на производительность!
Micktu 😬
вдруг это медленные зайцы.
Micktu 😬
еще скажите такую штуку
Micktu 😬
что можно использовать вместо чар поинтеров для буферов данных?
Micktu 😬
просто чар вектор?
Micktu 😬
или есть специализированные штуки?
🦥Alex Fails
Для фиксированной длины std::array можно
Micktu 😬
о, спасибо
Micktu 😬
(да, я именно настолько не в курсе STL)
Micktu 😬
да, это годится.
🦥Alex Fails
(да, я именно настолько не в курсе STL)
Да ничего страшного, я тож не сильно в курсе, поэтому в соседнем чате выкладываю скрины бота с парсом сайта на си😄
Gregory
@micktu по поводу вектора и ссылок на его элементы - а как вы эту задачу решали в других ЯП?
Micktu 😬
в других языках программирования у меня нет выбора
Micktu 😬
это всегда рефренс
Micktu 😬
там не бывает значения у массива
Micktu 😬
там не бывает значений у его элементов
Micktu 😬
я всегда могу взять референс на элемент и он доступен
Micktu 😬
фактически то же самое поведение тут дает вектор указателей
Micktu 😬
но у меня есть опция иметь вектор значений... ну и понеслась
Gregory
Ок, понял. Бывали у нас подобные задачи когда требовалось линейного расположения и при этом ссылки на элементы. Колво элементов заранее не было известно, элементы только добавлялись. Вектор был обернут классом гарантирующим только добавление элементов. В качестве ссылки на элемен ы возвращалась оболочка ссылка на вектор + да, да, индекс. О чем уже говорили Ничего плохого тут нет
Gregory
Две эти оболочки просто дают нужные гарантии
Andrei
По производительности плохо, а так ничего, конечно.
Gregory
в цикле по "ссылкам" этим никто не ходит - есть же оригинальный вектор и пефоманс там