我有一個向量std :: vector。我想遍歷向量查找匹配,如果發現想指針返回如下元素:將矢量迭代器轉換爲指針
const int * findint(std::vector <int> &v, int a)
{
std::vector<int>::const_iterator i1,i2;
i1 = v.begin();
i2 = v.end();
for(;i1 != i2;++i1) {
if(a== *i1) {
return(i1);
}
}
return(0);
}
這是編譯和好的工作與GNU G ++編譯器2.95.3但不用GNU g ++ 4.9.2編譯並給出以下錯誤:
error: cannot convert 'std::vector<GenFld>::const_iterator {aka __gnu_cxx::__normal_iterator<const int*, std::vector<int> >}' to 'const int*' in return
[exec] return(i1);
需要幫助。
你爲什麼要這個指針?你可以index = std :: distance(v.begin(),i1);返回(&v [ix]) – thorsan
或者使用std :: find(v.begin(),v.end(),a) – thorsan