我tryed使2D矩阵模板类unsing STD载体。到目前为止,大多数功能都如期工作。但是,当我尝试编写accessor或getter和setter函数时,我遇到了一些问题。 起初,这个我班的基本布局:与STD向量模板矩阵
template <class T>
class DynamicMatrix
{
private:
vector<vector<T>> map;
...
}
我第一次尝试是访问函数:
template <class T>
T& DynamicMatrix<T>::at(size_t x, size_t y)
{
return(map.at(x).at(y));
}
template <class T>
const T& DynamicMatrix<T>::at(size_t x, size_t y) const
{
return(map.at(x).at(y));
}
,但是当我尝试调用gameMap.at(X,Y)= objxy;编译器说它是一个被删除的函数。
所以我尝试了getter和setter,并试图分配一个值时得到相同的结果。
首先,不要打电话给你的成员变量'map'。已经有一个'std :: map'类,使用'map'只会导致混淆。其次,请[mcve]。 – PaulMcKenzie
我猜这个错误是在'objxy'中,但没有mvce ... –
顺便说一句,如果可以的话,避免向量载体。单个矢量可以轻松容纳您需要的数据,并且效率更高且缓存更友好。 –