我虽然我理解迭代器和寻址等,但显然不是。请参阅下面的代码,这纯粹是一个示例。
我需要能够通过指针传递或将mystructs的每个结构引用到MyFunc()。该函数应该能够更新传递的实际结构,而不是通过副本或值。
我收到编译器错误:
error: cannot convert 'MY_STRUCT' to 'MY_STRUCT*' for argument '1' to 'void MyFunc(MY_STRUCT*)'
如果我只是传递迭代器地址,这也行不通。
这样做的正确方法是什么。提前致谢。
typedef struct
{
int var1;
int var2;
std::string name;
}MY_STRUCT;
std::list<MY_STRUCT> mystructs;
void MyFunc(MY_STRUCT*)
{
// Do something
}
// populate the list with structs etc.. not included here
//.....
for (std::list<MY_STRUCT>::iterator it = mystructs.begin();it != mystructs.end(); ++it)
{
MyFunc(*it);
}