下面是我的模板矩阵,我想通过从用户那里获取值(value)来构建它。 但是当我编译它时。我收到以下错误。为什么会出错?
SO_模板.cpp:
在成员函数中 void Matrix<T>::BuildMatrix(std::vector<T, std::allocator<_CharT> >)':
SO_template.cpp:44: error: expected
;'在“它”之前
如果我使用 int 专门化我的类(class),它不会提示为什么?
template<class T>
class Matrix
{
private:
vector<T> col;
int iNumberOfRow;
int iNumberOfCol;
public:
void BuildMatrix(const std::vector<T> stringArray)
{
std::vector<T>::iterator it= stringArray.begin();
cout<<"Build Matrix irow="<<stringArray.size();
...
...
}
};
最佳答案
问题是 std::vector<T>::iterator
是一个“依赖类型”——整个类型依赖于T
.前缀为 typename
解决这个问题,所以把这行写成
typename std::vector<T>::iterator it= stringArray.begin();
关于C++,模板参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9735970/