作者tyc5116 (累人啊....)
看板C_and_CPP
標題[STL ] 請問List
時間Fri Jul 10 14:57:13 2009
請問一下,我的部份程式碼如下
class TP_Gra{
public:
TP_Gra(int vID,Point vOrigin_Position);
TP_Gra();
~TP_Gra();
void Set_ID(int vID){ID=vID;}
int Get_ID(){return ID;}
void Set_Coodinate(Point Position);
Point Get_Coodinate(){return Origin_Position;}
private:
int ID;
Point Origin_Position;
};
class Truckload_TP_Gra{
typedef list<TP_Gra> Contents;
public:
Truckload_TP_Gra();
Truckload_TP_Gra(TP_Gra one_TP);
void add_TP(TP_Gra new_TP);
Contents::const_iterator begin();
Contents::const_iterator end();
private:
Contents Load;
};
如上,Truckload可因為list的結構而不斷擴張
但我打了這樣的程式(在windows form下)
MessageBox::Show(Token_Place.begin()->Get_Coodinate());
試圖讀取第一個元件的座標,則會發生錯誤,錯誤訊息如下
TP_Gra::Get_Coodinate' : 無法將 'this' 指標從 'const TP_Gra' 轉換成 'TP_Gra &
請問,我該怎麼改呢
又如果現在我是要取最後一個元件的座標,那我又要怎麼改
我知道end()指的是一個空集合,要讀取該位置的前一個位置才是最後的元件位置
但是我的程式碼該怎麼表示呢??
以上兩個問題,麻煩有經驗的大大回答一下,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.18.48.28
推 Cloud:不清楚為什麼你要將iterator暴露出來..回傳TP_Gra比較好吧 07/10 15:55
→ Cloud:改為 Contents::iterator 應該就行了 07/10 15:56
→ Cloud:最後的元素用 list<T>::back() 07/10 15:57