Как изменить размер многомерного вектора, такие как:изменение размеров многомерного вектора
vector <vector <vector <custom_type> > > array;
Например, мне нужно массив [3] [5] [10]?
Как изменить размер многомерного вектора, такие как:изменение размеров многомерного вектора
vector <vector <vector <custom_type> > > array;
Например, мне нужно массив [3] [5] [10]?
Вы должны изменить размер всего вложенного vector
s по одному. Используйте вложенные петли for
или рекурсию.
я это сделал))
array.resize(3);
for (int i = 0; i < 3; i++)
{
array[i].resize(5);
for (int j = 0; j < 5; j++)
{
array[i][j].resize(10);
}
}
Я хотел бы сделать пользовательский контейнер, содержащий вектор векторов (из ... в измерении) и изменение размеров с изменением размера-функций на измерение. Таким образом, вы можете поместить инвариант равного размера на измерение в одном месте. Фактическое изменение размера может быть выполнено в цикле в соответствии с размером.
Там будет немного работы, связанной с обнародованием, что должно быть доступно (оператор [], ...)
смотри также Boost.MultiArray
Boost.MultiArray provides a generic N-dimensional array concept definition and common implementations of that interface.
array.resize(3,vector<vector<custom_type> >(5,vector<custom_type>(10)));
нормально, такие как m_elements .resize (3); для (int i = 0; i <3; i ++) { массив [i] .resize (5); для (int j = 0; j <5; j ++) { массив [i] [j] .resize (10); } } – qutron 2010-11-30 09:00:58
@qutron: Да ... просто как это. :-) – 2010-11-30 09:06:14
Вам не нужно делать это по одному. См. Мой ответ. – Matt 2014-06-19 04:04:41