2
list<CPoint> l;
l.push_back(CPoint(1,2));
l.push_back(CPoint(30,40));
l.push_back(CPoint(4,6));
l.push_back(CPoint(70,80));
CPoint * point = 0;
for (list<CPoint>::iterator iter = l.begin();
iter != l.end();
iter++)
{
cout << iter->x << " , " << iter->y << endl;
// compilation error, I can't typcast it like below?
point = (CPoint *) iter;
}
問題上面就是如何在循環中iter
typcast的實際數據結構的指針?這樣我就可以編寫像point.x
,point.y
這樣的代碼。如何typcast一個迭代器到原來的結構
以上是我編寫的演示代碼,但實際上我在搜索功能中使用了此代碼。如果在列表中找到一個項目,它將返回指向該項目的指針,否則返回NULL。爲了得到這個指針,我需要將迭代器解引用回底層的數據結構指針,但是怎麼做呢?謝謝。