我有一个结构矢量,例如
struct IDS{
string name;
int age;
IDS(string name, int age){
this->name = name;
this ->age = age;
}
}
vector<IDS> myVector;
我使用结构填充此向量,稍后我想找到具有特定值的结构并保存指向它的指针。我尝试使用
IDS *tmp;
auto it = find_if (temp->myVector.begin(), temp->myVector.end(), [&](const IDS &y) {
return y.age == age;
});
if ( it != temp -> myVector.begin() ){
tmp =it
}
向量位于链表中。这会引发此错误
无法转换&#39; __ gnu_cxx :: __ normal_iterator
&#39;到#IDS *&#39;在任务|
如何修复此错误,以及如何存储迭代器指针?
答案 0 :(得分:4)
it
是一个迭代器,而不是一个指针。您可以使用tmp = &(*it);
将迭代器转换为指针。
或者,您可以将tmp
设为std::vector<IDS>::iterator
。