您的位置:首页 > 其它

迭代器(iterator)并非指针

2007-04-10 15:34 337 查看
如下代码产生如下错误:
test.cpp: In function `int main()':
test.cpp:15: error: cannot convert `__gnu_cxx::__normal_iterator<label**, std::vector<label*, std::allocator<label*> > >' to `label**' in initialization


#include<iostream>


#include<vector>


using namespace std;




struct label




...{


int x;


int y;


};




int main()




...{


vector<label*> plabel;


label ** pCurrlabel = plabel.begin();


return 0;


}




改为


label * pCurrlabel = *(plabel.begin());

就好了。

因为plabel.begin()返回的是一个迭代器,并不能自然地转化为指针。

(摘自:www.linuxquestions.org
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: