指向矢量迭代器返回值的指针
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填充这个向量,稍后我想找到一个具有特定值的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
。
相关文章:
- 将返回值存储在函数指针数组的指针中是如何工作的?
- 当我使用 void 函数的返回值(通过强制转换函数指针)时,究竟会发生什么?
- 如何在不使用临时变量的情况下取消引用返回指针的函数的返回值?
- 如何返回值为NULL的变量指针
- 将指向数组的指针作为函数参数传递,这本身就是另一个函数的返回值?
- 为什么 c_str() 在返回常量指针值时不输出地址
- 存储指向函数返回值的指针
- 指针未正确返回值
- 动态指针引用数组由三元运算符返回值,但有异常
- 指针返回值的地址
- 将指针设置为函数的返回值
- 即使在返回值之前释放后,数据仍在指针中仍然存在
- 返回指针、返回值或传入引用,这在C++中很优雅
- 为什么静态、非本地返回指针的返回值始终为零?
- 从共享指针矢量字符串返回值
- 当函数返回值是指针,而返回类型是c++中的引用时会发生什么
- 为什么指针返回值,而不是地址
- 返回指向常量getter的指针时,返回值类型与函数类型不匹配
- 是指向在向函数返回值/参数和类请求传输数据期间复制的内存的指针
- 作为 c++ dll 函数返回值的结构指针