我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 ... –
順便說一句,如果可以的話,避免向量載體。單個矢量可以輕鬆容納您需要的數據,並且效率更高且緩存更友好。 –