带有 std 向量的模板矩阵
Template matrix with std vector
我已经尝试制作一个 2D 矩阵模板 Class unsing std vectors。到目前为止,大多数功能都可以正常工作。但是当我尝试编写访问器或 getter 和 setter 函数时,我遇到了一些问题。
起初这是我的 class:
的基本布局
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;编译器说它是一个已删除的函数。
所以我尝试了 getters 和 setters 并且在尝试分配值时得到了相同的结果。
您没有提到 gameMap
中的 T
是什么,但我想它没有可访问的复制构造函数,因此分配 objxy
失败。
我已经尝试制作一个 2D 矩阵模板 Class unsing std vectors。到目前为止,大多数功能都可以正常工作。但是当我尝试编写访问器或 getter 和 setter 函数时,我遇到了一些问题。 起初这是我的 class:
的基本布局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;编译器说它是一个已删除的函数。
所以我尝试了 getters 和 setters 并且在尝试分配值时得到了相同的结果。
您没有提到 gameMap
中的 T
是什么,但我想它没有可访问的复制构造函数,因此分配 objxy
失败。