я получил задание, в котором я должен написать класс для многомерного вектора
мне сказали, что я должен использовать шаблоны, что является совершенно новым для меня, а если быть точным, то я должен использовать template <unsigned short n>
где n определяет, сколько измерений имеет мой вектор.
пока у меня есть это, но это не работает:
vector.h
#include <vector>
template <unsigned short n>
class Vector {
public:
std::vector<float> coords;
Vector<n>();
};
vector.cpp
#include "vector.h"
Vector<n>() {
for(int i = 0; i < n; i++) {
coords.push_back(0.0);
}
};
мой конструктор по умолчанию делает векторные шнуры равными 0,0
я получаю ошибку на векторе.cpp C:\CodeBlocks\kool\praks3\vector.cpp|3|error: 'n' was not declared in this scope|
далее .. Почему я должен использовать шаблон здесь, я прочитал учебник по шаблону, и он используется для оптимизации кода и уменьшения повторения кода, но здесь n должно быть всегдаunsigned short
когда я смотрю этот пример, я понимаю, что использую шаблон, потому что моим типом данных может быть все, что я хочу, и я могу использовать его для чисел, двойных чисел или любых чисел
но в данный момент какой смысл использовать шаблон, когда я определил, какой тип данных я должен использовать ???
template <class dataType>
dataType GetMin (dataType a, dataType b) {
return ((a < b) ? a : b );
}
, если что-то неясно, не стесняйтесь спрашивать у меня!потому что есть много, что смущает меня:)