2016-09-03 2 views
1

Мне нужен std::vector из dlib::matrix, но во время компиляции я не знаю размер матрицы; документация говорит мне:DLIB C++ как сделать std :: vector из dlib :: matrix

// (Note that if you don't know the dimensionality of your vectors at compile time 
// you can change the 2 to a 0 and then set the size at runtime) 
typedef matrix<double,2,1> sample_type; 

нормально, но мне нужно std::vector этого объекта, так, что аргумент шаблона я должен установить на моем std::vector? пример (get_dimensionality() дает мне право dimensionanlity):

matrix<double,0,1> m; 
m.set_size(get_dimensionality(),1); 
std::vector<matrix<double,????????,1> v; 
v.push_back(m); 

, что номер на ?????????

ответ

2

У вас есть ответ на ваш вопрос. Используйте вектор как

std::vector<matrix<double, 0, 1> v; 

так что вы можете установить размер каждого элемента при его запуске, то же самое делать с самими матрицами.

+0

но если я изменю размер позже ... он по-прежнему совместим? пример: v.at (0) .set_size (get_dimensionality(), 1); не больше , поэтому я изменил тип объекта в моем std :: vector ... – volperossa

Смежные вопросы