我在映射迭代器中出錯。問題如下:在類賦值時映射迭代器錯誤
class JacobianCol
{
private:
...
JacobianColData::iterator _L_begin;
public:
JacobianColData::iterator L_begin();
...
};
在另一個模塊:
JacobianCol LUSolver::col_subtract(const JacobianColData::iterator &alpha, JacobianCol &X, JacobianCol &Y)
{
JacobianCol result = Y;
//alternate "result" variable
return result;
}
電話:
...
J[*it] = col_subtract(friend_element, J[diag_index], J[*it]);
...
當我指定的col_subtract
結果J[*it]
我得到J[*it].L_begin
指向一個解除分配的內存(指向先前的J[*it]
)。
不解決您的問題重新初始化迭代器,但與年初的名字下劃線後跟一個大寫字母以及以雙下劃線開頭的名字保留給C++實現。 –
謝謝。我使用下劃線來區分私人,不受公衆的保護。我將在未來的項目中考慮您的建議 –
您是否實現了您的副本構造函數(並正確賦值)?從你的片段中看不到這個簡單的問題.. – Nim