![](/img/trans.png)
[英]return pointer rather than vector::iterator and convert vector::iterator to pointer
[英]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.