指向向量迭代器

时间:2016-03-26 14:05:14

标签: c++ pointers vector

我有一个结构矢量,例如

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;在任务|

  

如何修复此错误,以及如何存储迭代器指针?

1 个答案:

答案 0 :(得分:4)

it是一个迭代器,而不是一个指针。您可以使用tmp = &(*it);将迭代器转换为指针。

或者,您可以将tmp设为std::vector<IDS>::iterator