Я хочу сохранить большой вектор d-мерных точек (d фиксированный и малый: < 10).
Если я определяю Point
как vector<int>
, я думаю, что vector<Point>
будет хранить в каждой позиции указатель на Точку.
Но если define a Point
как объект фиксированного размера, например:
std::tuple<int,int,...,int>
или std::array<int, d>
,
будет ли программа сохранять все точки в непрерывной памяти или будет сохраняться дополнительный уровень косвенности?
Если ответ заключается в том, что массивы избегают дополнительной косвенности, может ли это сильно повлиять на производительность (локальность использования кэша) при сканировании vector<Point>
?