繁体   English   中英

指向向量迭代器返回值的指针

[英]Pointer to return value of vector iterator

我有一个结构向量,例如

struct IDS{
   string name;
   int age;
   IDS(string name, int age){
    this->name = name;
    this ->age = age;
   }
}

vector<IDS> myVector;

我用structs填充此向量,稍后我要查找具有特定值的结构并保存指向它的指针。 我尝试使用

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
}

向量在链表中。 这引发此错误

无法转换'__gnu_cxx :: __ normal_iterator

从'到'IDS *'

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM