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