Я храню и генерирую некоторые данные, которые, естественно, представлены с размером> 1. Однако я видел много ответов, рекомендующих программистам использовать 1D-вектор со своим собственным индексом для представления нескольких измерений. Мой вопрос: что можно получить, используя только 1-мерность?Должен ли я всегда использовать 1D-вектор с моим собственным индексированием или многомерный вектор нормально?
В моем текущем проекте производительность является приоритетом (сначала я знаю код, а затем профиль, но этот проект импортируется на C++ с другого языка для скорости). Я видел, как только один векторный объект может уменьшить накладные расходы, но разве это намного больше, чем часто вычисление индексов? Я видел один ответ отметил, что с помощью вложенных векторов:
vector < vector<int> >
Вызывает много звонков new
. Я видел, как это волнует, это правда?
Существует семантическая разница: вложенные '' '' '' '' '' '' позволяют так называемым зубчатым массивам, где 'arr [i] .size()! = A [j] .size()' для некоторого 'i =! j'. – delnan
Это можно сделать с помощью одномерного вектора и более сложной схемы индексирования, верно? –
Не с одним и тем же 1D-вектором вам нужны дополнительные метаданные (вы можете * придумать взломать, чтобы также сохранить это в одном массиве 1D, но это просто ужасная реализация «дополнительных метаданных»). – delnan